IP Library Granted Patent US 10,747,714
Granted Patent B2
US 10,747,714 · App. 16/110,059 · Granted Aug 18, 2020

Scalable distributed data store

Inventors: Keyan Kousha (Emeryville, CA); Michelle C. Munson (Berkeley, CA); Serban Simu (Berkeley, CA); Ying Xu (Fremont, CA)
Assignee: International Business Machines Corporation
G06F16/00G06F11/2023G06F11/2097G06F16/182G06F16/256G06F16/27G06F11/0757G06F2201/80
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 10,747,714
App. No.
16/110,059
Granted
Aug 18, 2020
Kind
B2
Abstract

Described is a framework that manages a clustered, distributed NoSQL data store across multiple server nodes. The framework may include daemons running on every server node, providing auto-sharding and unified data service such that user data can be stored and retrieved consistently from any node. The framework may further provide capabilities such as automatic fail-over and dynamic capacity scaling.

Claims (42)

1. A distributed database system comprising:

a plurality of database nodes;

one or more distributed databases hosted by the plurality of database nodes, each of the one or more distributed databases comprising a plurality of database partitions, wherein each database partition includes a master database partition and a slave database partition, wherein the master database partition is configured to accept data requests, and wherein the slave database partition is configured to synchronize with the master database partition;

wherein at least one of the plurality of database nodes is configured to:

determine usage conditions of the distributed database system and automatically adjust a quantity of the plurality of database nodes in response to the usage conditions indicating an increased amount of memory usage per node, wherein adjusting the quantity includes:

adding one or more database partitions to the plurality of database partitions hosted by the plurality of database nodes, wherein a quantity of the database partitions exceeds the quantity of database nodes, and wherein at least one database node hosts the master database partitions of two or more different ones of the plurality of database partitions;

adding one or more database nodes to the plurality of database nodes to increase the quantity of database nodes to at least the quantity of database partitions, wherein the added one or more database nodes increase memory capacity of the distributed database system to accommodate the increased memory usage; and

rebalancing the master and slave database partitions across the plurality of database nodes with each different master database partition residing on a different database node and each slave database partition residing on a database node different than a database node of a corresponding master database partition.

2. The distributed database system of claim 1 , wherein at least one of the plurality of database nodes is configured to maintain a write and read performance of the one or more distributed databases independent from a number of data objects stored in the one or more distributed databases.

3. The distributed database system of claim 1 , further comprising an administrator tool configured to perform auto-sharding operations by distributing data records among the master and slave database partitions, wherein each of the data records is identified by a unique key string, and wherein the unique key string is utilized to determine a particular database partition to assign the data records for storage.

4. The distributed database system of claim 1 , wherein at least one of the plurality of database nodes is configured to:

accept data requests and determine which database partition to serve a data request.

5. The distributed database system of claim 4 , wherein the database node hosting the determined database partition applies the data request to a master database partition.

6. A method of accessing data in a distributed database system including a plurality of database nodes, said method comprising:

determining usage conditions of the distributed database system, via at least one of the plurality of database nodes, wherein one or more distributed databases are hosted by the plurality of database nodes, each of the one or more distributed databases comprising a plurality of database partitions, wherein each database partition includes a master database partition and a slave database partition, wherein the master database partition is configured to accept data requests, and wherein the slave database partition is configured to synchronize with the master database partition; and

automatically adjusting, via at least one of the plurality of database nodes, a quantity of the plurality of database nodes in response to the usage conditions indicating an increased amount of memory usage per node, wherein adjusting the quantity includes:

adding one or more database partitions to the plurality of database partitions hosted by the plurality of database nodes, wherein a quantity of the database partitions exceeds the quantity of database nodes, and wherein at least one database node hosts the master database partitions of two or more different ones of the plurality of database partitions;

adding one or more database nodes to the plurality of database nodes to increase the quantity of database nodes to at least the quantity of database partitions, wherein the added one or more database nodes increase memory capacity of the distributed database system to accommodate the increased memory usage; and

rebalancing the master and slave database partitions across the plurality of database nodes with each different master database partition residing on a different database node and each slave database partition residing on a database node different than a database node of a corresponding master database partition.

7. The method of claim 6 , further comprising:

maintaining a write and read performance of the one or more distributed databases independent from a number of data objects stored in the one or more distributed databases.

8. The method of claim 6 , further comprising:

performing auto-sharding operations by distributing data records among the master and slave database partitions, wherein each of the data records is identified by a unique key string, and wherein the unique key string is utilized to determine a particular database partition to assign the data records for storage.

9. The method of claim 6 , further comprising:

accepting data requests, via at least one of the plurality of database nodes, and determining which database partition to serve a data request.

10. The method of claim 9 , further comprising:

applying the data request to a master database partition via the database node hosting the determined database partition.

11. A computer program product for accessing data in a distributed database system including a plurality of database nodes, said computer program product comprising:

one or more computer readable storage media collectively having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code, that when executed by one or more processors, causes one or more of the plurality of database nodes to:

determine usage conditions of the distributed database system, wherein one or more distributed databases are hosted by the plurality of database nodes, each of the one or more distributed databases comprising a plurality of database partitions, wherein each database partition includes a master database partition and a slave database partition, wherein the master database partition is configured to accept data requests, and wherein the slave database partition is configured to synchronize with the master database partition;

automatically adjust a quantity of the plurality of database nodes in response to the usage conditions indicating an increased amount of memory usage per node, wherein adjusting the quantity includes:

adding one or more database partitions to the plurality of database partitions hosted by the plurality of database nodes, wherein a quantity of the database partitions exceeds the quantity of database nodes, and wherein at least one database node hosts the master database partitions of two or more different ones of the plurality of database partitions;

adding one or more database nodes to the plurality of database nodes to increase the quantity of database nodes to at least the quantity of database partitions, wherein the added one or more database nodes increase memory capacity of the distributed database system to accommodate the increased memory usage; and

rebalancing the master and slave database partitions across the plurality of database nodes with each different master database partition residing on a different database node and each slave database partition residing on a database node different than a database node of a corresponding master database partition.

12. The computer program product of claim 11 , wherein the computer readable program code further causes one or more of the plurality of database nodes to:

maintain a write and read performance of the one or more distributed databases independent from a number of data objects stored in the one or more distributed databases.

13. The computer program product of claim 11 , wherein the computer readable program code further causes one or more of the plurality of database nodes to:

perform auto-sharding operations by distributing data records among the master and slave database partitions, wherein each of the data records is identified by a unique key string, and wherein the unique key string is utilized to determine a particular database partition to assign the data records for storage.

14. The computer program product of claim 11 , wherein the computer readable program code further causes one or more of the plurality of database nodes to:

accept data requests and determine which database partition to serve a data request.

15. The computer program product of claim 14 , wherein the computer readable program code further causes the database node hosting the determined database partition to:

apply the data request to a master database partition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2018
From: KOUSHA, KEYAN; MUNSON, MICHELLE C.; SIMU, SERBAN; XU, YING
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046679/0196 →
Continuity (3)
Continuation 14983912 · Dec 30, 2015
Provisional Application 62098482 · Dec 31, 2014
Related Publication 20180365235A1 · Dec 20, 2018