IP Library Granted Patent US 10,915,555
Granted Patent B2
US 10,915,555 · App. 16/116,037 · Granted Feb 9, 2021

Systems and methods for adaptive data replication

Inventors: Peter Wilczynski (San Francisco, CA); Ryan Zheng (Mountain View, CA); John Carrino (Menlo Park, CA); Timothy Wilson (Palo Alto, CA); Stephen Freiberg (Palo Alto, CA); John Garrod (San Mateo, CA); William Waldrep (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06F16/275G06F16/27G06F16/29G06F16/951
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,915,555
App. No.
16/116,037
Granted
Feb 9, 2021
Kind
B2
Abstract

Systems and methods are provided for adaptive data replication. A first data object is stored. One or more first network characteristics of a communication network are detected. A first replication mode is triggered (e.g., a single-master replication mode) based on the one or more first network characteristics of the communication network. The single-master replication may be configured to facilitate real-time synchronizations (e.g., for critical updates). One or more second network characteristics of the communication network are detected. A second replication mode (e.g., a multi-master replication mode) is triggered based on the one or more second network characteristics. The second replication may be configured to facilitate a delayed synchronization (e.g., for non-critical updates) of the first data object and the second data object using the second update file.

Claims (72)

1. A system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

storing a first data object, the first data object being associated with a corresponding second data object stored by a remote master replication system;

detecting one or more first network characteristics of a communication network;

triggering a single-master replication mode based on the one or more first network characteristics of the communication network;

detecting one or more second network characteristics of the communication network; and

triggering a multi-master replication mode based on the one or more second network characteristics, the multi-master replication mode including:

receiving a first update of the first data object;

generating a first update file, the first update file indicating the first update of the first data object;

providing the first update file to a first multi-master replication system over the communication network, the first multi-master replication system facilitating a delayed synchronization of the first data object and the second data object using the first update file;

obtaining, by the first multi-master replication system, a third data object, wherein the third data object is associated with a corresponding fourth data object stored by a second multi-master replication system;

generating, by the first multi-master replication system, a second update file indicating the first update of the first data object and the third data object;

providing, by the first multi-master replication system, the second update file to the second multi-master replication system;

synchronizing, by the second multi-master replication system, the third data object and the fourth data object using the second update file;

generating, by the second multi-master replication system, a third update file, the third update file indicating the first update of the first data object;

providing, by the second remote multi-master replication system, the third update file to the remote master replication system; and

updating, by the remote master replication system, the second data object using the third update file.

2. The system of claim 1 , wherein the one or more first network characteristics comprise one or more of latency, bandwidth, throughput, or network connection status.

3. The system of claim 1 , wherein the communication network is a first communication network, and wherein the first update file is provided to the second multi-master replication system over a second communication network different from the first communication network.

4. The system of claim 1 , wherein the multi-master replication mode further includes:

generating an alert based on at least one of the one or more second network characteristics; and

presenting the alert to a user of the system.

5. The system of claim 1 , wherein the instructions further cause the system to perform:

determining a priority status of at least a portion of the first update of the first data object; and

wherein the multi-master replication mode is triggered based on the priority status of the at least a portion of the first update of the first data object.

6. The system of claim 1 , wherein the second update file includes the first update file batched with a previously scheduled replication of the third data object.

7. The system of claim 1 , wherein the third and fourth data objects comprise immutable data objects and the first and second data objects comprise mutable data objects.

8. The system of claim 7 , wherein the third and fourth data objects represent a geographic map, and the first and second data objects represent a point of interest of the geographic map.

9. A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:

storing a first data object, the first data object being associated with a corresponding second data object stored by a remote master replication system;

detecting one or more first network characteristics of a communication network;

triggering a single-master replication mode based on the one or more first network characteristics of the communication network;

detecting one or more second network characteristics of the communication network; and

triggering a multi-master replication mode based on the one or more second network characteristics, the multi-master replication mode including:

receiving a first update of the first data object;

generating a first update file, the first update file indicating the first update of the first data object;

providing the first update file to a first multi-master replication system over the communication network, the first multi-master replication system facilitating a delayed synchronization of the first data object and the second data object using the first update file;

obtaining, by the first multi-master replication system, a third data object, wherein the third data object is associated with a corresponding fourth data object stored by a second multi-master replication system;

generating, by the first multi-master replication system, a second update file indicating the first update of the first data object and the third data object;

providing, by the first multi-master replication system, the second update file to the second multi-master replication system;

synchronizing, by the second multi-master replication system, the third data object and the fourth data object using the second update file;

generating, by the second multi-master replication system, a third update file, the third update file indicating the first update of the first data object;

providing, by the second remote multi-master replication system, the third update file to the remote master replication system; and

updating, by the remote master replication system, the second data object using the third update file.

10. The method of claim 9 , wherein the one or more first network characteristics comprise one or more of latency, bandwidth, throughput, or network connection status.

11. The method of claim 9 , wherein the communication network is a first communication network, and wherein the first update file is provided to the second multi-master replication system over a second communication network different from the first communication network.

12. The method of claim 9 , wherein the multi-master replication mode further includes:

generating an alert based on at least one of the one or more second network characteristics; and

presenting the alert to a user of the system.

13. The method of claim 9 , further comprising:

determining a priority status of at least a portion of the first update of the first data object; and

wherein the multi-master replication mode is triggered based on the priority status of the at least a portion of the first update of the first data object.

14. The method of claim 9 , wherein the second update file includes the first update file batched with a previously scheduled replication of the third data object.

15. The method of claim 9 , wherein the third and fourth data objects comprise immutable data objects and the first and second data objects comprise mutable data objects.

16. The method of claim 15 , wherein the third and fourth data objects represent a geographic map, and the first and second data objects represent a point of interest of the geographic map.

17. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

storing a first data object, the first data object being associated with a corresponding second data object stored by a remote master replication system;

detecting one or more first network characteristics of a communication network;

triggering a single-master replication mode based on the one or more first network characteristics of the communication network;

detecting one or more second network characteristics of the communication network; and

triggering a multi-master replication mode based on the one or more second network characteristics, the multi-master replication mode including:

receiving a first update of the first data object;

generating a first update file, the first update file indicating the first update of the first data object;

providing the first update file to a first multi-master replication system over the communication network, the first multi-master replication system facilitating a delayed synchronization of the first data object and the second data object using the first update file;

obtaining, by the first multi-master replication system, a third data object, wherein the third data object is associated with a corresponding fourth data object stored by a second multi-master replication system;

generating, by the first multi-master replication system, a second update file indicating the first update of the first data object and the third data object;

providing, by the first multi-master replication system, the second update file to the second multi-master replication system;

synchronizing, by the second multi-master replication system, the third data object and the fourth data object using the second update file;

generating, by the second multi-master replication system, a third update file, the third update file indicating the first update of the first data object;

providing, by the second remote multi-master replication system, the third update file to the remote master replication system; and

updating, by the remote master replication system, the second data object using the third update file.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2019
From: WILCZYNSKI, PETER; ZHENG, RYAN; CARRINO, JOHN; WILSON, TIMOTHY; FREIBERG, STEPHEN; GARROD, JOHN; WALDREP, WILLIAM
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 049032/0449 →