IP Library › Granted Patent US 11,494,394
Granted Patent B2
US 11,494,394 · App. 16/730,574 · Granted Nov 8, 2022

Data versioning in a multi-datacenter topology

Inventors: Kim Dung Bui (Singapore, SG); Chun Kiat Ho (Singapore, SG); Lin Song (Singapore, SG); Kai Xie (Singapore, SG)
Assignee: PayPal, Inc.
G06F16/2474G06F16/219G06F16/248
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,494,394
App. No.
16/730,574
Granted
Nov 8, 2022
Kind
B2
Abstract

Techniques are disclosed relating to data versioning in a multi-datacenter topology. In various embodiments, a computer system at a first datacenter may execute a query at a first point in time against a particular dataset that is maintained at the first datacenter. The particular dataset includes a first data record with a corresponding version number, where the version number is associated with a value of the first data record at the first point in time. In response to the first query, the computer system may receive a first results dataset that includes the first data record with its corresponding version number. The computer system may then store information indicative of the results dataset that is usable to retrieve, at a subsequent time from a historical version of the particular dataset at a second datacenter, the first data record with the same value as at the first point in time.

Claims (66)

1. A method, comprising:

executing, by a computer system at a first point in time, a first query against a particular dataset at a first production datacenter, wherein the particular dataset includes a plurality of data records that are each associated with a corresponding version number, and wherein, for a given one of the plurality of data records, a corresponding version number of the given data record is associated with a value of the given data record at a given point in time;

in response to executing the first query, receiving, by the computer system, a first results dataset that includes a first data record of the plurality of data records with a first version number that is associated with a value of the first data record at the first point in time; and

storing information indicative of the first results dataset in a data store, wherein the information specifies the first version number associated with the first data record and is usable to retrieve, at a second point in time subsequent to the first point in time from a historical version of the particular dataset stored in a historical database separate from the data store, the first data record with the same value as at the first point in time.

2. The method of claim 1 , further comprising:

generating the corresponding version number for each of the plurality of data records.

3. The method of claim 2 , wherein the generating the corresponding version numbers includes generating a universally unique identifier (UUID) for each of the plurality of data records.

4. The method of claim 2 , further comprising:

receiving, at the first production datacenter prior to the first point in time, a batch of updated data records associated with the particular dataset,

wherein the batch of updated data records includes updated values for each of the plurality of data records, and

wherein the generating the corresponding version numbers includes assigning a single version number to all of the plurality of data records.

5. The method of claim 1 , further comprising:

maintaining, at a simulation datacenter, the historical version of the particular dataset, wherein the historical version of the particular dataset includes one or more historical values for each of the plurality of data records at different points in time.

6. The method of claim 5 , further comprising:

retrieving, by a second computer system at the simulation datacenter, the information indicative of the first results dataset from the data store, wherein the information specifies the first version number associated with the first data record; and

retrieving, by the second computer system at the second point in time, the first data record from the historical version of the particular dataset, wherein the first data record retrieved at the second point in time has the same value as at the first point in time.

7. The method of claim 1 , wherein the particular dataset is a risk analytics dataset usable to perform risk detection operations.

8. A method, comprising:

retrieving, by a first computer system at a simulation datacenter, information indicative of a first results dataset, wherein the information includes:

a first version number associated with a first data record from the first results dataset, wherein the first results dataset was retrieved from a particular dataset at a first point in time, and wherein the first version number is associated with a value of the first data record at the first point in time;

maintaining, at the simulation datacenter in a data store, a historical version of the particular dataset, wherein the historical version of the particular dataset includes one or more historical values for the first data record at different points in time; and

based on the first version number, retrieving, by the first computer system at a second point in time that is subsequent to the first point in time, the first data record from the historical version of the particular dataset stored in a historical database separate from the data store, wherein the first data record retrieved at the second point in time has the same value as at the first point in time.

9. The method of claim 8 , further comprising:

receiving, at the simulation datacenter prior to the first point in time, an updated value for the first data record;

generating the first version number associated with the updated value for the first data record; and

updating, by the first computer system at the simulation datacenter, the first data record in the historical version of the particular dataset to include the updated value and the first version number.

10. The method of claim 9 , wherein the first version number associated with the updated value for the first data record is generated by the first computer system at the simulation datacenter.

11. The method of claim 9 , wherein the updated value for the first data record is included in a batch of updated data records associated with the particular dataset,

wherein the batch of updated data records includes updated values for each of a plurality of data records, and

wherein the generating the first version number includes assigning the first version number as an updated version number for all of the plurality of data records.

12. The method of claim 8 , further comprising:

receiving, at a first production datacenter prior to the first point in time, an updated value for the first data record;

generating, by a second computer system at the first production datacenter, the first version number associated with the updated value for the first data record, wherein the first version number for the first data record generated at the first production datacenter is the same as the first version number for the first data record generated at the simulation datacenter; and

updating, by the second computer system at the first production datacenter, the first data record, stored in a copy of the particular dataset maintained at the first production datacenter, to include the updated value and the first version number.

13. The method of claim 12 , further comprising:

executing, by the second computer system at the first point in time, a first query against the copy of the particular dataset maintained at the first production datacenter to retrieve the first results dataset.

14. The method of claim 13 , further comprising:

subsequent to executing the first query, storing, by the second computer system at the first production datacenter, the information indicative of the first results dataset in a data store accessible to the first computer system at the simulation datacenter.

15. A system, comprising:

at least one processor;

a memory having instructions stored thereon that are executable by the at least one processor to cause the system to execute a first datacenter and a second datacenter:

the first datacenter that includes:

a first database storing a copy of a particular dataset; and

a first plurality of computer systems, wherein at least one of the first plurality of computer systems stores program instructions that are executable by one or more of the first plurality of computer systems to:

receive an updated version of the particular dataset that includes updated values for a plurality of data records, wherein the updated version of the particular dataset is associated with a first point in time;

generate a version number for each of the plurality of data records, wherein, for a given one of the plurality of data records, a given corresponding version number is associated with a value of the given data record at the first point in time; and

update the copy of the particular dataset to include the updated value and the version number for each of the plurality of data records; and

the second datacenter that includes:

a second database storing a historical version of the particular dataset, wherein the historical version of the particular dataset includes one or more historical values for each of the plurality of data records at different points in time; and

a second plurality of computer systems, wherein at least one of the second plurality of computer systems stores second program instructions that are executable by one or more of the second plurality of computer systems to:

receive the updated version of the particular dataset that includes updated values for the plurality of data records;

generate a version number for each of the plurality of data records, wherein the version numbers generated for the plurality of data records at the second datacenter are the same as the version numbers generated for the plurality of data records at the first datacenter; and

update the historical version of the particular dataset to include the updated value and the version number for each of the plurality of data records, wherein the updated value and the version number for each of the plurality of data records are usable to retrieve, at a subsequent point in time from the historical version of the particular dataset, data records with the same value as at the first point in time.

16. The system of claim 15 , wherein the program instructions are further executable by one or more of the first plurality of computer systems to:

execute, at a second point in time, a first query against the updated copy of the particular dataset to retrieve a first results dataset, wherein the first results dataset includes a first data record, of the plurality of data records, with a first version number that is associated with a value of the first data record at the first point in time; and

store information indicative of the first results dataset in a data store that is accessible to one or more computer systems at the second datacenter, wherein the information specifies the first version number associated with the value of the first data record at the first point in time.

17. The system of claim 16 , wherein the second program instructions are further executable by one or more of the second plurality of computer systems to:

retrieve the information indicative of the first results dataset from the data store; and

retrieve, at a third, subsequent point in time, the first data record from the updated historical version of the particular dataset using the first version number, wherein a value of the first data record at the third, subsequent point in time is the same value as the value of the first data record at the first point in time.

18. The system of claim 17 , wherein the first results dataset further includes a second data record; wherein the second program instructions are further executable by one or more of the second plurality of computer systems to:

determine that, for the second data record, the information indicative of the first results dataset does not include a corresponding version number; and

retrieve the second data record from the updated historical version of the particular dataset based on the second point in time at which the first query was executed at the first datacenter.

19. The system of claim 15 , wherein, to generate the version number for each of the plurality of data records, the program instructions are further executable by one or more of the first plurality of computer systems to:

generate a unique version number for each of the plurality of data records.

20. The system of claim 15 , wherein, to generate the version number for each of the plurality of data records, the program instructions are further executable by one or more of the first plurality of computer systems to:

generate a single version number for each of the plurality of data records for which the updated version of the particular dataset includes an updated value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2021
From: BUI, KIM DUNG; HO, CHUN KIAT; SONG, LIN; XIE, KAI
To: PAYPAL, INC.
Reel/Frame 056902/0732 →
Continuity (1)
Related Publication 20210200760A1 · Jul 1, 2021
Cited By (2)
US 12,455,891 US 12,737,346