IP Library Granted Patent US 8,533,169
Granted Patent B1
US 8,533,169 · App. 11/232,418 · Granted Sep 10, 2013

Transactional replication

Inventors: Stuart Bailey (Mountain View, CA); Ivan W. Pulleyn (Sunnyvale, CA); Srinath Gutti (Sunnyvale, CA)
Assignee: Infoblox Inc.
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,533,169
App. No.
11/232,418
Granted
Sep 10, 2013
Kind
B1
Abstract

Writing data in a distributed database having a plurality of nodes is disclosed. Writing includes receiving a write request at a node, wherein the write request is associated with one or more operations to define an atomic transaction and performing the atomic transaction based on the request. The atomic transaction includes writing to a first version of the database in the node and writing to an entity representative of a state of the first version of the database.

Claims (28)

1. A method of writing data in a distributed database having a plurality of nodes, including:

receiving a write request at a first member node having a first version of a database, wherein the write request comprises a semantically expressed request to modify the database without sending changed data;

applying the received original write request to both the first version of the database and a journal queue in a single atomic transaction, wherein applying the received write request to the journal queue includes placing the received write request in the journal queue, wherein the journal queue is associated with the first member node and is configured to store write requests that have not yet been reconciled with a master version of the database on a master node, wherein reconciling a write request with a master version of the database includes a determination of whether there is a conflict between the first version of the database with the write request applied and the master version of the database; and

determining that the first version of the database is in a high availability pair, wherein the high availability pair includes a second version of the database in a second member node, and applying the received original write request to both the first version of the database and to the second version of the database in the second member node;

wherein the write request includes one or more selected from the group consisting of commands, operations and instructions.

2. A method as recited in claim 1 , wherein the first member node is an active node and the second member node is a passive node in the high availability pair.

3. A method as recited in claim 1 , further including propagating one or more items in the journal queue to the master node.

4. A method as recited in claim 1 , wherein the second member node is associated with a second journal queue and further including applying the write request to the second version of the database and to the second journal queue in a single atomic transaction.

5. A method as recited in claim 3 , further including receiving from the master node an indication that the one or more items in the journal queue have been reconciled with the master version of the database by the master node.

6. A method as recited in claim 5 , further including, in response to receiving the indication, removing the one or more items from the journal queue.

7. A method as recited in claim 5 , wherein the indication indicates whether data in the master version of the database conflicts with the one or more items in the journal queue.

8. A method as recited in claim 5 , further including, in the event that the indication indicates a conflict between data in the master version of the database and the one or more items in the journal queue, managing the conflict.

9. A method as recited in claim 8 , wherein removing the one or more items from the journal queue and managing the conflict are performed in a single atomic transaction.

10. A computer program product for writing data in a distributed database having a plurality of nodes, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

receiving a write request at a first member node having a first version of a database, wherein the write request comprises a semantically expressed request to modify the database without sending changed data;

applying the received original write request to both the first version of the database and a journal queue in a single atomic transaction, wherein applying the write request to the journal queue includes placing the write request in the journal queue, wherein the journal queue is associated with the first member node and is configured to store write requests that have not yet been reconciled with a master version of the database on a master node, wherein reconciling a write request with a master version of the database includes a determination of whether there is a conflict between the first version of the database with the write request applied and the master version of the database; and

determining that the first version of the database is in a high availability pair, wherein the high availability pair includes a second version of the database in a second member node, and applying the received original write request to both the first version of the database and to the second version of the database in the second member node;

wherein the write request includes one or more selected from the group consisting of commands, operations and instructions.

11. A computer program product as recited in claim 10 , wherein the first member node is an active node and the second member node is a passive node in the high availability pair.

12. A computer program product as recited in claim 10 , further comprising computer instructions for propagating one or more items in the journal queue to the master node.

13. A system for writing data in a distributed database having a plurality of nodes, including:

a processor configured to:

receive a write request at a first member node having a first version of a database, wherein the write request comprises a semantically expressed request to modify the database without sending changed data;

apply the received original write request to both the first version of the database and a journal queue in a single atomic transaction, wherein applying the write request to the journal queue includes placing the write request in the journal queue, wherein the journal queue is associated with the first member node and is configured to store write requests that have not yet been reconciled with a master version of the database on a master node, wherein reconciling a write request with a master version of the database includes a determination of whether there is a conflict between the first version of the database with the write request applied and the master version of the database; and

determining that the first version of the database is in a high availability pair, wherein the high availability pair includes a second version of the database in a second member node, and apply the received original write request to both the first version of the database and to the second version of the database in the second member node;

wherein the write request includes one or more selected from the group consisting of commands, operations and instructions.

14. A system as recited in claim 13 , wherein the first member node is an active node and the second member node is a passive node in the high availability pair.

15. A system as recited in claim 13 , wherein the processor is further configured to propagate one or more items in the journal queue to the master node.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 017113 FRAME: 0512. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTIVE ASSIGNMENT. Recorded Dec 21, 2016
From: BAILEY, STUART; PULLEYN, IVAN W.; GUTTI, SRINATH
To: INFOBLOX INC.
Reel/Frame 040754/0069 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2005
From: BAILEY, STUART; PULLEYN, IVAN W.; GUTTI, SRINATH
To: INFOBLOX, INC.
Reel/Frame 017113/0512 →