IP Library Granted Patent US 8,204,856
Granted Patent B2
US 8,204,856 · App. 12/690,696 · Granted Jun 19, 2012

Database replication

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,204,856
App. No.
12/690,696
Granted
Jun 19, 2012
Kind
B2
Abstract

A new database design is implemented in which everything in the database is modeled with primitives, including the links and nodes for a graph tuple store. A query syntax provides a nested tree of constraints with a single global schema. Various optimization techniques for queries and replication techniques are also described.

Claims (28)

1. A method performed by a system of one or more computers, the method comprising:

receiving a transaction representing an update to a master graph database, the transaction including a new primitive and a first unique identifier for the new primitive in the master graph database;

updating a concentric graph database with the new primitive, wherein the concentric graph database includes a first plurality of primitives and a second plurality of primitives, wherein each of the first plurality of primitives is also included in the master graph database and none of the second plurality of primitives are included in the master graph database, and wherein updating the concentric graph database with the new primitive comprises assigning a different, second unique identifier to the new primitive in the concentric graph database; and

storing a mapping from the second unique identifier to the first unique identifier in the concentric graph database.

2. The method of claim 1 , further comprising:

monitoring a replica stream, wherein, for each primitive added to the master graph database, the master graph database publishes a transaction over the replica stream, the transaction including the primitive added to the master graph database.

3. The method of claim 1 , wherein, for each of the first plurality of primitives, the concentric graph database includes a respective mapping from a second unique identifier for the primitive to a first unique identifier associated with the primitive.

4. The method of claim 3 , wherein, for each primitive of the first plurality of primitives added to the concentric graph database before any of the second plurality of primitives, the respective second unique identifier associated with the primitive is equivalent to the respective first unique identifier associated with the primitive.

5. The method of claim 4 , wherein, for each primitive of the first plurality of primitives added to the concentric graph database after an earliest primitive in the second plurality of primitives, the respective second unique identifier for the first primitive is different from the respective first unique identifier for the first primitive.

6. The method of claim 1 , wherein the new primitive includes a particular first identifier of a particular primitive in the first plurality of primitives that the new primitive is modifying, and wherein updating the concentric database with the new primitive comprises:

identifying a particular second identifier for the particular primitive; and

replacing, in the new primitive in the concentric graph database, the particular first identifier with the particular second identifier.

7. The method of claim 1 , further comprising:

storing the mapping as a link primitive in the concentric graph database, wherein the link primitive includes the first unique identifier, the second unique identifier, and data indicating that the link primitive defines an identifier for the new primitive in the concentric database that is equivalent to the second identifier for the new primitive.

8. A system comprising one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a transaction representing an update to a master graph database, the transaction including a new primitive and a first unique identifier for the new primitive in the master graph database;

updating a concentric graph database with the new primitive, wherein the concentric graph database includes a first plurality of primitives and a second plurality of primitives, wherein each of the first plurality of primitives is also included in the master graph database and none of the second plurality of primitives are included in the master graph database, and wherein updating the concentric graph database with the new primitive comprises assigning a different, second unique identifier to the new primitive in the concentric graph database; and

storing a mapping from the second unique identifier to the first unique identifier in the concentric graph database.

9. The system of claim 8 , the operations further comprising:

monitoring a replica stream, wherein, for each primitive added to the master graph database, the master graph database publishes a transaction over the replica stream, the transaction including the primitive added to the master graph database.

10. The system of claim 8 , wherein, for each of the first plurality of primitives, the concentric graph database includes a respective mapping from a second unique identifier for the primitive to a first unique identifier associated with the primitive.

11. The system of claim 10 , wherein, for each primitive of the first plurality of primitives added to the concentric graph database before any of the second plurality of primitives, the respective second unique identifier associated with the primitive is equivalent to the respective first unique identifier associated with the primitive.

12. The system of claim 11 , wherein, for each primitive of the first plurality of primitives added to the concentric graph database after an earliest primitive in the second plurality of primitives, the respective second unique identifier for the first primitive is different from the respective first unique identifier for the first primitive.

13. The system of claim 8 , wherein the new primitive includes a particular first identifier of a particular primitive in the first plurality of primitives that the new primitive is modifying, and wherein updating the concentric database with the new primitive comprises:

identifying a particular second identifier for the particular primitive; and

replacing, in the new primitive in the concentric graph database, the particular first identifier with the particular second identifier.

14. The system of claim 8 , the operations further comprising:

storing the mapping as a link primitive in the concentric graph database, wherein the link primitive includes the first unique identifier, the second unique identifier, and data indicating that the link primitive defines an identifier for the new primitive in the concentric database that is equivalent to the second identifier for the new primitive.

Assignments (5)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2011
From: METAWEB TECHNOLOGIES, INC.
To: GOOGLE INC.
Reel/Frame 025748/0575 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET FOR THE MERGER DOCUMENT FILED ON 11/15/2010 AND PREVIOUSLY RECORDED ON REEL 025364 FRAME 0717. ASSIGNOR(S) HEREBY CONFIRMS THE RECEIVING PARTY DATA SHOULD BE METAWEB TECHNOLOGIES, INC.. Recorded Jan 21, 2011
From: METAWEB TECHNOLOGIES, INC.
To: METAWEB TECHNOLOGIES, INC.
Reel/Frame 025675/0981 →
MERGER Recorded Nov 15, 2010
From: METAWEB TECHNOLOGIES, INC.
To: GOOGLE INC.
Reel/Frame 025364/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2010
From: MEYER, SCOTT; DEGENER, JUTTA; MICHENER, BARAK; GIANNANDREA, JOHN
To: METAWEB TECHNOLOGIES, INC.
Reel/Frame 023819/0884 →