IP Library Granted Patent US 9,792,345
Granted Patent B1
US 9,792,345 · App. 14/306,572 · Granted Oct 17, 2017

Parallel database mirroring

Inventors: Matthew C. McCline (Foster City, CA); Milena Bergant (San Mateo, CA)
Assignee: Pivotal Software, Inc.
G06F17/30581G06F17/3038G06F17/30578G06F17/30368
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 9,792,345
App. No.
14/306,572
Granted
Oct 17, 2017
Kind
B1
Abstract

In a database cluster comprising a plurality of mirrored database segments, a mirror database pair comprising a primary database and a mirror database are maintained substantially consistent by writing changes resulting from transactions to page data in parallel to the primary database and to the mirror database. Changes are sent to the mirror database over a network using network communications. Transaction logs are also written to the primary and mirrored databases in parallel, the transaction logs being sent to the mirror database using network communications. Bulk load changes resulting from transactions are written in parallel over the network to the primary database and the mirror database without writing the changes to a transaction log. In the event of a failure, resynchronization of the mirror database can be performed quickly while avoiding a lengthy ongoing redo process on the mirror database.

Claims (43)

1. A method comprising:

determining, by a master node of a computer network and based on one or more data records stored in a master node database, that a primary database hosted on a first node of the computer network is synchronized with a mirror database hosted on a second node of the computer network; and

in response to the determining that the primary and mirror databases are synchronized:

writing, by a first process, a database page to the primary database and to the mirror database asynchronously and substantially in parallel, the database page containing data changes resulting from a transaction; and

writing, by a second process, transaction logs to the mirror database asynchronously and substantially in parallel with writing the transaction logs to the primary database, wherein writing the database page by the first process to the mirror database is independent of writing the transaction logs by the second process to the mirror database,

wherein writing the database page to the mirror database is not based on the transaction logs, and

wherein each of the first node, second node, and master node includes one or more computers comprising one or more hardware processors.

2. The method of claim 1 , further comprising flushing the transaction logs written to the primary database and the mirror database to disk on their respective nodes at predetermined points.

3. The method of claim 2 , wherein the predetermined points include a transaction commit point.

4. The method of claim 2 , wherein the predetermined points include a transaction prepare point.

5. The method of claim 1 ,

wherein the master node maintains, in the one or more data records stored in the master node database, information on whether the primary database and mirror database are synchronized, whether only one of the primary and mirror databases is current, and which of the primary and mirror databases is current, and

wherein each of the primary database and the mirror database stores respective local status.

6. A system comprising:

a first node hosting a primary database;

a second node hosting a mirror database;

a master node connected with the first node and the second node through a network; and

a non-transitory storage device storing instructions that, when executed, cause at least one of the first node, second node, or master node to perform operations comprising:

determining, by the master node based on one or more data records stored in a master node database, that the primary database is synchronized with the mirror database; and

in response to the determining that the primary and mirror databases are synchronized:

writing, by a first process, a database page to the primary database and to the mirror database asynchronously and substantially in parallel, the database page containing data changes resulting from a transaction; and

writing, by a second process, transaction logs to the mirror database asynchronously and substantially in parallel with writing the transaction logs to the primary database, wherein writing the database page by the first process to the mirror database is independent of writing the transaction logs by the second process to the mirror database,

wherein writing the database page to the mirror database is not based on the transaction logs, and

wherein each of the first node, second node, and master node includes one or more computers comprising one or more hardware processors.

7. The system of claim 6 , further comprising flushing the transaction logs written to the primary database and the mirror database to disk on their respective nodes at predetermined points.

8. The system of claim 7 , wherein the predetermined points include a transaction commit point.

9. The system of claim 7 , wherein the predetermined points include a transaction prepare point.

10. The system of claim 6 ,

wherein the master node maintains, in the one or more data records stored in the master node database, information on whether the primary database and mirror database are synchronized, whether only one of the primary and mirror databases is current, and which of the primary and mirror databases is current, and

wherein each of the primary database and the mirror database stores respective local status.

11. A non-transitory storage device storing instructions that, when executed, cause one or more processors to perform operations comprising:

determining, by a master node of a computer network and based on one or more data records stored in a master node database, that a primary database hosted on a first node of the computer network is synchronized with a mirror database hosted on a second node of the computer network; and

in response to the determining that the primary and mirror databases are synchronized:

writing, by a first process, a database page to the primary database and to the mirror database asynchronously and substantially in parallel, the database page containing data changes resulting from a transaction; and

writing, by a second process, transaction logs to the mirror database asynchronously and substantially in parallel with writing the transaction logs to the primary database, wherein writing the database page by the first process to the mirror database is independent of writing the transaction logs by the second process to the mirror database,

wherein writing the database page to the mirror database is not based on the transaction logs, and

wherein each of the first node, second node, and master node includes one or more computers comprising one or more hardware processors.

12. The non-transitory storage device of claim 11 , the operations further comprising flushing the transaction logs written to the primary database and the mirror database to disk on their respective nodes at predetermined points.

13. The non-transitory storage device of claim 12 , wherein the predetermined points include a transaction commit point.

14. The non-transitory storage device of claim 12 , wherein the predetermined points include a transaction prepare point.

15. The non-transitory storage device of claim 11 ,

wherein the master node maintains, in the one or more data records stored in the master node database, information on whether the primary database and mirror database are synchronized, whether only one of the primary and mirror databases is current, and which of the primary and mirror databases is current, and

wherein each of the primary database and the mirror database stores respective local status.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: MCCLINE, MATTHEW C.; BERGANT, MILENA
To: EMC CORPORATION
Reel/Frame 035257/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: EMC CORPORATION
To: GOPIVOTAL, INC.
Reel/Frame 035257/0234 →
CHANGE OF NAME Recorded Mar 25, 2015
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 035294/0455 →
Continuity (1)
Continuation 13107897 · May 14, 2011