IP Library Granted Patent US 11,604,811
Granted Patent B2
US 11,604,811 · App. 17/133,534 · Granted Mar 14, 2023

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 11,604,811
App. No.
17/133,534
Granted
Mar 14, 2023
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 (54)

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;

receiving a request to update the first data object, the update comprising a first portion and a second portion;

detecting one or more network characteristics of a communication network;

determining a first priority associated with the first portion of the update and a second priority associated with the second portion of the update, the first priority being different from the second priority; and

triggering a parallel replication mode, wherein triggering the parallel replication mode comprises:

triggering a single-master replication mode for the first portion of the update based at least in part on at least one of the first priority or the one or more network characteristics of the communication network, the single-master replication mode enabling real-time synchronization of the first portion of the update to the first data object with the second data object; and

triggering, in parallel with the single-master replication mode, a multi-master replication mode for the second portion of the update based at least in part on at least one of the second priority or the one or more network characteristics of the communication network, the multi-master replication mode enabling delayed synchronization of the second portion of the update to the first data object with the second data object.

2. The system of claim 1 , wherein triggering the single-master replication mode comprises sending a replication message to the remote master replication system comprising a first context-based priority identifier indicative of the first priority.

3. The system of claim 2 , wherein the first context-based priority identifier indicates a first activity associated with the first portion of the update, and wherein the first activity is associated with a time-sensitive priority status.

4. The system of claim 1 , wherein the single-master replication mode exhibits lower latency and lower fault tolerance than the multi-master replication mode.

5. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the system to perform:

triggering the multi-master replication mode for the first portion of the update in parallel with the single-master replication mode for the first portion of the update.

6. The system of claim 1 , wherein the remote master replication system owns the second data object and the first data object is a copy of the second data object, wherein the system is a client replication system for the first data object, and wherein triggering the single-master replication mode comprises:

generating a first update file based on the first portion of the update; and

sending the first update file to the remote master replication system.

7. The system of claim 6 , wherein the first update file conforms to one or more parameters to ensure successful real-time synchronization of the first portion of the update to the first data object with the second data object.

8. The system of claim 7 , wherein the one or more parameters comprises at least one of data size of transmission protocols.

9. The system of claim 6 , wherein the instructions, when executed by the one or more processors, cause the system to perform:

receiving a batch of requested modifications to stored data objects over a period of time, the batch of requested modifications including the update to the first data object; and

locally deconflicting one or more conflicts associated with the batch of modifications.

10. The system of claim 9 , wherein the request to update the first data object is a first request, and wherein locally deconflicting one or more conflicts associated with the batch of modifications comprises:

determining that the batch of modification includes a second request to update the first data object;

determining that the second request conflicts with the first request;

determining that the first request was received prior to the second request; and

rejecting the second request.

11. A 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;

receiving a request to update the first data object, the update comprising a first portion and a second portion;

detecting one or more network characteristics of a communication network;

determining a first priority associated with the first portion of the update and a second priority associated with the second portion of the update, the first priority being different from the second priority; and

triggering a parallel replication mode, wherein triggering the parallel replication mode comprises:

triggering a single-master replication mode for the first portion of the update based at least in part on at least one of the first priority or the one or more network characteristics of the communication network, the single-master replication mode enabling real-time synchronization of the first portion of the update to the first data object with the second data object; and

triggering, in parallel with the single-master replication mode, a multi-master replication mode for the second portion of the update based at least in part on at least one of the second priority or the one or more network characteristics of the communication network, the multi-master replication mode enabling delayed synchronization of the second portion of the update to the first data object with the second data object.

12. The method of claim 11 , wherein triggering the single-master replication mode comprises sending a replication message to the remote master replication system comprising a first context-based priority identifier indicative of the first priority.

13. The method of claim 12 , wherein the first context-based priority identifier indicates a first activity associated with the first portion of the update, and wherein the first activity is associated with a time-sensitive priority status.

14. The method of claim 11 , wherein the single-master replication mode exhibits lower latency and lower fault tolerance than the multi-master replication mode.

15. The method of claim 11 , further comprising:

triggering the multi-master replication mode for the first portion of the update in parallel with the single-master replication mode for the first portion of the update.

16. The method of claim 11 , wherein the remote master replication system owns the second data object and the first data object is a copy of the second data object, wherein the system is a client replication system for the first data object, and wherein triggering the single-master replication mode comprises:

generating a first update file based on the first portion of the update; and

sending the first update file to the remote master replication system.

17. The method of claim 16 , wherein the first update file conforms to one or more parameters to ensure successful real-time synchronization of the first portion of the update to the first data object with the second data object.

18. The method of claim 17 , wherein the one or more parameters comprises at least one of data size of transmission protocols.

19. The method of claim 16 , further comprising:

receiving a batch of requested modifications to stored data objects over a period of time, the batch of requested modifications including the update to the first data object; and

locally deconflicting one or more conflicts associated with the batch of modifications.

20. The method of claim 19 , wherein the request to update the first data object is a first request, and wherein locally deconflicting one or more conflicts associated with the batch of modifications comprises:

determining that the batch of modification includes a second request to update the first data object;

determining that the second request conflicts with the first request;

determining that the first request was received prior to the second request; and

rejecting the second request.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2021
From: WILCZYNSKI, PETER; ZHENG, RYAN; CARRINO, JOHN; WILSON, TIMOTHY; FREIBERG, STEPHEN; GARROD, JOHN; WALDREP, WILLIAM
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 055511/0737 →
Continuity (4)
Continuation 16116037 · Aug 29, 2018
Continuation 15664184 · Jul 31, 2017
Provisional Application 62489737 · Apr 25, 2017
Related Publication 20210117444A1 · Apr 22, 2021