IP Library Granted Patent US 8,700,574
Granted Patent B2
US 8,700,574 · App. 12/053,157 · Granted Apr 15, 2014

Pourover journaling

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 8,700,574
App. No.
12/053,157
Granted
Apr 15, 2014
Kind
B2
Abstract

PourOver is the process of replicating databases across clusters, in order to achieve real and/or near real-time database consistency between clusters (e.g., continually provide the ability to construct a consistent database on the alternate cluster that is up to date within a few minutes worth of transactions).

Claims (66)

1. A method for replicating near real-time transaction data and disc based database files in a distributed system to a backup, the method comprising the steps of:

receiving, at the backup, a snapshot of a plurality of distributed databases, wherein the snapshot is received on a periodic basis, the periodic basis including a timed basis or a specific number of records entered into the plurality of distributed databases, and wherein at least two distributed databases of the plurality of distributed databases store inter-related data;

replicating the plurality of distributed databases in the backup from the snapshot to build replicated databases;

receiving streamed transaction updates for the plurality of distributed databases subsequent to taking the snapshot, wherein the transaction updates are associated with unique identifiers that indicate a sequential order of the transaction updates;

assembling the transaction updates into sequential transaction updates in an order based on the unique identifiers associated with the transaction updates;

validating an integrity of the order of the sequential transaction updates;

simultaneously writing two or more of the validated sequential transaction updates in the sequential order into separate files of a journal; and

applying the validated sequential transaction updates from the separate files of the journal in the order to the replicated databases, wherein the validated sequential transaction updates are streamed to the replicated databases even as additional updates are occurring to the transaction updates.

2. The method of claim 1 , wherein the step of receiving a snapshot comprises receiving a snapshot when the sequential transaction updates are invalid.

3. The method of claim 1 , wherein receiving transaction updates further comprises receiving the transaction updates via at least one network connection.

4. The method of claim 1 , further comprising restoring the plurality of distributed databases from the replicated databases at a specific point in time.

5. The method of claim 1 wherein the backup comprises a remote site.

6. The method of claim 1 wherein the step of replicating comprises replicating across clusters.

7. The method of claim 1 , wherein the plurality of the distributed databases include different versions of the same database located in different clusters.

8. The method of claim 1 , further comprising:

deleting the snapshot and the journal upon receiving a second snapshot of the plurality of distributed databases.

9. A system for replicating near real-time transaction data and disc based database files in a distributed system to a backup, the system comprising:

means for receiving, at the backup, a snapshot of a plurality of distributed databases, wherein the snapshot is received on a periodic basis, the periodic basis including a timed basis or a specific number of records entered into the plurality of distributed databases, and wherein at least two distributed databases of the plurality of distributed databases store inter-related data;

means for replicating the plurality of distributed databases in the backup from the snapshot to build replicated databases;

means for receiving streamed transaction updates for the plurality of distributed databases subsequent to taking the snapshot, wherein the transaction updates are associated with unique identifiers that indicate a sequential order of the transaction updates;

means for assembling the transaction updates into sequential transaction updates in an order based on the unique identifiers associated with the transaction updates;

means for validating an integrity of the order of the sequential transaction updates;

means for simultaneously writing two or more of the validated sequential transaction updates in the sequential order into separate files of a journal; and

means for applying the validated sequential transaction updates from the separate files of the journal in the order to the replicated databases, wherein the validated sequential transaction updates are streamed to the replicated databases even as additional updates are occurring to the transaction updates.

10. The system of claim 9 wherein the means for receiving a snapshot comprises a means for receiving a snapshot when the sequential transaction updates are invalid.

11. The system of claim 9 , wherein the means for receiving transaction updates further comprises means for receiving the out of order transaction updates via at least one network connection.

12. The system of claim 9 , further comprising means for restoring the plurality of distributed databases from the replicated databases at a specific point in time.

13. The system of claim 9 wherein the backup comprises a remote site.

14. The system of claim 9 wherein the means for replicating comprises a means for replicating across clusters.

15. The system of claim 9 , wherein the plurality of the distributed databases include different versions of the same database located in different clusters.

16. The system of claim 9 , further comprising:

means for deleting the snapshot and the journal upon receiving a second snapshot of the plurality of distributed databases.

17. A computer program product, comprising:

computer readable storage medium storing code that causes one or more processors to replicate near real-time transaction data and disc based database files in a distributed system to a backup, the computer code comprising:

code for causing at least one of the processors to receive, at the backup, a snapshot of a plurality of distributed databases, wherein the snapshot is received on a periodic basis, the periodic basis including a timed basis or a specific number of records entered into the plurality of distributed databases, and wherein at least two distributed databases of the plurality of distributed databases store inter-related data;

code for causing at least one of the processors to replicate the plurality of distributed databases in the backup from the snapshot to build replicated databases;

code for causing at least one of the processors to receive streamed transaction updates for the plurality of distributed databases subsequent to taking the snapshot, wherein the transaction updates are associated with unique identifiers that indicate a sequential order of the transaction updates;

code for causing at least one of the processors to assemble the transaction updates into sequential transaction updates in an order based on the unique identifiers associated with the transaction updates;

code for causing at least one of the processors to validate an integrity of the order of the sequential transaction updates;

code for causing at least one of the processors to simultaneously write two or more of the validated sequential transaction updates in the sequential order into separate files of a journal; and

code for causing at least one of the processors to apply the validated sequential transaction updates from the separate files of the journal in the order to the replicated databases, wherein the validated sequential transaction updates are streamed to the replicated databases even as additional updates are occurring to the transaction updates.

18. The computer program product of claim 17 , further comprising code for causing at least one of the processors to receive a snapshot when the sequential transaction updates are invalid.

19. The computer program product of claim 17 , further comprising code for causing at least one of the processors to receive the transaction updates via at least one network connection.

20. The computer program product of claim 17 , further comprising code for causing the plurality of distributed databases to be restored from the replicated databases at a specific point in time.

21. The computer program product of claim 17 wherein the backup comprises a remote site.

22. The computer program product of claim 17 wherein the code for causing the at least two distributed databases in the backup be replicated comprises code for causing the replication across clusters.

23. The computer program product of claim 17 , further comprising:

code for causing at least one of the processors to delete the snapshot and the journal upon receiving a second snapshot of the plurality of distributed databases.

24. An apparatus for replicating near real-time transaction data and disc based database files in a distributed system to a backup, the apparatus comprising:

a snapshot component comprising a replication application operable to:

receive, at the backup, a snapshot of a plurality of distributed databases, wherein the snapshot is received on a periodic basis, the periodic basis including a timed basis or a specific number of records entered into the plurality of distributed databases, and wherein at least two distributed databases of the plurality of distributed databases store inter-related data;

replicate the plurality of distributed databases in the backup from the snapshot to build replicated databases;

receive streamed transaction updates for the plurality of distributed databases subsequent to taking the snapshot, wherein the transaction updates are associated with unique identifiers that indicate a sequential order of the transaction updates;

assemble the transaction updates into sequential transaction updates in an order based on the unique identifiers associated with the transaction updates;

validate an integrity of the order of the sequential transaction updates;

simultaneously write two or more of the validated sequential transaction updates in the sequential order into separate files of a journal; and

apply the validated sequential transaction updates from the separate files of the journal in the order to the replicated databases, wherein the validated sequential transaction updates are streamed to the replicated databases even as additional updates are occurring to the transaction updates.

25. The apparatus of claim 24 , wherein the snapshot component is further operable to receive a snapshot when the sequential transaction updates are invalid.

26. The apparatus of claim 24 , wherein the snapshot component is further operable to receive the transaction updates via at least one network connection.

27. The apparatus of claim 24 , further comprising:

a restoring component operable to restore the plurality of distributed databases from the replicated databases at a specific point in time.

28. The apparatus of claim 24 , wherein the backup comprises a remote site.

29. The apparatus of claim 24 , wherein the snapshot component is further operable to replicate across clusters.

30. The computer program product of claim 17 , wherein the plurality of the distributed databases include different versions of the same database located in different clusters.

31. The apparatus of claim 24 , further comprising:

delete the snapshot and the journal upon receiving a second snapshot of the plurality of distributed databases.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT PATENT NUMBER D856640 PREVIOUSLY RECORDED ON REEL 056601 FRAME 0630. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN PATENT SECURITY AGREEMENT. Recorded Nov 17, 2021
From: OMNITRACS, LLC; ROADNET TECHNOLOGIES, INC.; SMARTDRIVE SYSTEMS, INC.; XRS CORPORATION; HYPERQUEST, LLC (F/K/A HYPERQUEST, INC.); AUDATEX NORTH AMERICA, LLC (F/K/A AUDATEX NORTH AMERICA, INC.); CLAIMS SERVICES GROUP, LLC; DMEAUTOMOTIVE LLC; ENSERVIO, LLC (F/K/A ENSERVIO, INC.); MOBILE PRODUCTIVITY, LLC; SEE PROGRESS, LLC (F/K/A SEE PROGRESS, INC.); SOLERA HOLDINGS, LLC (F/K/A SOLERA HOLDINGS, INC.); EDRIVING FLEET LLC; FINANCE EXPRESS LLC
To: GOLDMAN SACHS LENDING PARTNERS LLC, AS COLLATERAL AGENT
Reel/Frame 058174/0907 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT PATENT NUMBER D856640 PREVIOUSLY RECORDED ON REEL 056598 FRAME 0059. ASSIGNOR(S) HEREBY CONFIRMS THE SECOND LIEN PATENT SECURITY AGREEMENT. Recorded Nov 17, 2021
From: OMNITRACS, LLC; ROADNET TECHNOLOGIES, INC.; SMARTDRIVE SYSTEMS, INC.; XRS CORPORATION; HYPERQUEST, LLC (F/K/A HYPERQUEST, INC.); AUDATEX NORTH AMERICA, LLC (F/K/A AUDATEX NORTH AMERICA, INC.); CLAIMS SERVICES GROUP, LLC; DMEAUTOMOTIVE LLC; ENSERVIO, LLC (F/K/A ENSERVIO, INC.); MOBILE PRODUCTIVITY, LLC; SEE PROGRESS, LLC (F/K/A SEE PROGRESS, INC.); SOLERA HOLDINGS, LLC (F/K/A SOLERA HOLDINGS, INC.); EDRIVING FLEET LLC; FINANCE EXPRESS LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 058175/0775 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 16, 2021
From: OMNITRACS, LLC; ROADNET TECHNOLOGIES, INC.; SMARTDRIVE SYSTEMS, INC.; XRS CORPORATION; HYPERQUEST, LLC (F/K/A HYPERQUEST, INC.); AUDATEX NORTH AMERICA, LLC (F/K/A AUDATEX NORTH AMERICA, INC.); CLAIMS SERVICES GROUP, LLC; DMEAUTOMOTIVE LLC; ENSERVIO, LLC (F/K/A ENSERVIO, INC.); MOBILE PRODUCTIVITY, LLC; SEE PROGRESS, LLC (F/K/A SEE PROGRESS, INC.); SOLERA HOLDINGS, LLC (F/K/A SOLERA HOLDINGS, INC.); EDRIVING FLEET LLC; FINANCE EXPRESS LLC
To: GOLDMAN SACHS LENDING PARTNERS LLC, AS COLLATERAL AGENT
Reel/Frame 056601/0630 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 16, 2021
From: OMNITRACS, LLC; ROADNET TECHNOLOGIES, INC.; SMARTDRIVE SYSTEMS, INC.; XRS CORPORATION; HYPERQUEST, LLC (F/K/A HYPERQUEST, INC.); AUDATEX NORTH AMERICA, LLC (F/K/A AUDATEX NORTH AMERICA, INC.); CLAIMS SERVICES GROUP, LLC; DMEAUTOMOTIVE LLC; ENSERVIO, LLC (F/K/A ENSERVIO, INC.); MOBILE PRODUCTIVITY, LLC; SEE PROGRESS, LLC (F/K/A SEE PROGRESS, INC.); SOLERA HOLDINGS, LLC (F/K/A SOLERA HOLDINGS, INC.); EDRIVING FLEET LLC; FINANCE EXPRESS LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 056598/0059 →
SECURITY INTEREST RELEASE (REEL/FRAME: 053983/0570) Recorded Jun 8, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS GRANTEE
To: OMNITRACS, LLC
Reel/Frame 056518/0684 →
SECURITY INTEREST RELEASE (REEL/FRAME: 045723/0359) Recorded Jun 8, 2021
From: BARCLAYS BANK PLC, AS GRANTEE
To: OMNITRACS, LLC
Reel/Frame 056516/0442 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 6, 2020
From: OMNITRACS, LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053983/0570 →
SECURITY INTEREST Recorded Mar 26, 2018
From: OMNITRACS , LLC
To: BARCLAYS BANK PLC
Reel/Frame 045723/0359 →
RELEASE OF FIRST LIEN SECURITY AGREEMENT OF REEL/FRAME 031765/0877 Recorded Mar 26, 2018
From: ROYAL BANK OF CANADA
To: OMNITRACS, LLC
Reel/Frame 045727/0398 →
RELEASE OF SECOND LIEN SECURITY AGREEMENT OF REEL/FRAME 031765/0877 Recorded Mar 26, 2018
From: ROYAL BANK OF CANADA
To: OMNITRACS, LLC
Reel/Frame 045920/0845 →
CHANGE OF ADDRESS Recorded Jan 25, 2017
From: OMNITRACS, LLC
To: OMNITRACS, LLC
Reel/Frame 041492/0939 →
CHANGE OF NAME Recorded Feb 26, 2014
From: OMNITRACS, INC.
To: OMNITRACS, LLC
Reel/Frame 032336/0354 →
CHANGE OF NAME Recorded Feb 21, 2014
From: OMNITRACS, INC.
To: OMNITRACS, LLC
Reel/Frame 032319/0296 →
PATENT ASSIGNMENT AGREEMENT Recorded Feb 7, 2014
From: QUALCOMM INCORPORATED
To: OMNITRACS, INC.
Reel/Frame 032167/0756 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Dec 13, 2013
From: OMNITRACS, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 031814/0843 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Dec 5, 2013
From: OMNITRACS, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 031765/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2008
From: THOMSON, STEVEN S.; AKULA, MURALIDHAR REDDY; MOORE, RYAN; THANEDAR, VINEET
To: QUALCOMM INCORPORATED
Reel/Frame 020993/0572 →