IP Library › Granted Patent US 9,875,292
Granted Patent B2
US 9,875,292 · App. 13/904,611 · Granted Jan 23, 2018

Method of synchronizing data within database clusters

Inventors: Alexey Yurchenko (Espoo, FI); Seppo Jaakola (Helsinki, FI); Teemu Ollakka (Oulu, FI)
Assignee: Codership Oy
G06F17/30581G06F17/175
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,875,292
App. No.
13/904,611
Granted
Jan 23, 2018
Kind
B2
Abstract

A database cluster is provided. The database cluster includes a plurality of nodes. When a change is implemented at a first given node of the database cluster, the change is communicated to other nodes of the database cluster to synchronize data between the nodes. For this purpose, the first given node generates information by applying a hash function to a database key indicative of where the change is to be implemented. Subsequently, the first given node includes the information generated by the hash function into the change, and communicates the change along with the information to a second given node of the database cluster.

Claims (21)

1. A method of synchronizing data within a plurality of computing devices forming a database cluster, wherein the method includes:

(a) generating information by applying a function to a database key indicative of where a change is to be implemented in a database of the database cluster, wherein applying the function flattens a multi-dimensional structure of a database key space of the database from a tree graph structure into a one-dimensional series of randomly distributed integers represented by the generated information,

(b) including the information into the change; and

(c) communicating the change, including the information, from a first computing device of the cluster to a second computing device of the cluster.

2. A method as claimed in claim 1 , wherein the method includes populating a look-up table with hashed keys generated by applying the function to one or more database keys indicative of where one or more changes have been implemented.

3. A method as claimed in claim 2 , wherein the look-up table is populated substantially in real time.

4. A method as claimed in claim 2 , wherein the method includes looking-up the information in the look-up table of the second computing device, before implementing the change at the second computing device.

5. A method as claimed in claim 2 , wherein the hashed keys have an even distribution over an associated domain of potential values for the hashed keys, and the function provides a deterministic mapping.

6. A method as claimed in claim 1 , wherein the function is implemented as an 8-byte or 16-byte hash function.

7. A method as claimed in claim 1 , wherein the method includes employing Optimistic Concurrency Control (OCC) to resolve conflicts of synchronization resulting from substantially concurrent receipt of changes bearing mutually similar information generated by the hash function.

8. A software product recorded on non-transitory machine-readable data storage media, wherein the software product is executable upon computing hardware for implementing a method as claimed in claim 1 .

9. A database cluster including a plurality of computing devices, wherein data synchronization occurs between the computing devices, wherein:

(a) information is generated in operation by applying a function to a database key indicative of where a change is to be implemented, wherein the generation of information by applying the function flattens a multi-dimensional structure of a database key space from a tree graph structure into a one-dimensional series of randomly distributed integers represented by the generated information,

(b) the generated information is included into the change; and

(c) the change, including the information, is communicated from a first computing device of the database cluster to a second computing device of the database cluster.

10. A database cluster as claimed in claim 9 , wherein each node of the plurality of computing devices is operable to populate a look-up table with hashed keys generated by applying the function to one or more database keys indicative of where one or more changes have been implemented.

11. A database cluster as claimed in claim 10 , wherein the look-up table is populated substantially in real time.

12. A database cluster as claimed in claim 10 , wherein the second computing device is operable to look-up for the information in its respective look-up table, before implementing the change at the second computing device.

13. A database cluster as claimed in claim 10 , wherein the hashed keys have an even distribution over an associated domain of potential values for the hashed keys, and the function provides a deterministic mapping.

14. A database cluster as claimed in claim 9 , wherein the function is implemented as an 8-byte or 16-byte hash function.

15. A database cluster as claimed in claim 9 , wherein the database cluster is operable to employ Optimistic Concurrency Control (OCC) to resolve conflicts of synchronization resulting from substantially concurrent receipt of changes bearing mutually similar information generated by the function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2014
From: YURCHENKO, ALEXEY; JAAKOLA, SEPPO; OILAKKA, TEEMU
To: CODERSHIP OY
Reel/Frame 031950/0065 →
Continuity (1)
Related Publication 20140358852A1 · Dec 4, 2014