# US 2014/0195566 A1 · Distributed data management system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195566 A1
- Document ID: US20140195566A1
- Status: Published application
- Kind: A1
- Application number: 13/959,748
- Filed: 2013-08-06
- Published: 2014-07-10
- Earliest claimed: 2011-04-11
- Assignees: GoPivotal, Inc.
- Applicants: GoPivotal, Inc.
- Inventors: Russell OKAMOTO
- Web page: https://patentgrep.com/patent/US20140195566A1

## CPC

- G06F 16/214: {Database migration support}
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A distributed data management system has multiple virtual machine nodes operating on multiple computers that are in communication with each other over a computer network. Each virtual machine node includes at least one data store or “bucket” for receiving data. A digital hash map data structure is stored in a computer readable medium of at least one of the multiple computers to configure the multiple virtual machine nodes and buckets to provide concurrent, non-blocking access to data in the buckets, the digital hash map data structure including a mapping between the virtual machine nodes and the buckets. The distributed data management system employing dynamic scalability in which one or more buckets from a virtual machine node reaching a memory capacity threshold are transferred to another virtual machine node that is below its memory capacity threshold.

## Claims

### Claim 1

A method for storing data objects among a plurality of database management nodes operating on a plurality of computers in communication with each other over a computer network, the method comprising:
maintaining a global data structure in at least one of the database management nodes, wherein the global data structure maps each of a plurality of logical data stores to a corresponding one of the database management nodes in which the logical data store is stored and, upon receipt of a key value identifying a data object, provides an identity of a database management node storing a logical data store in which the data object is stored;
storing each data object in one of the logical data stores, wherein the logical data store corresponds to a key value of the data object; and
enabling migration of logical data stores from one database management node to another database management node to rebalance memory consumption among the database management nodes while simultaneously allowing concurrent and non-blocking access to data objects stored in other logical data stores that are not involved in the migration.

### Claim 2 (depends on 1)

The method of claim 1, wherein the global data structure is divided into partitions that are each stored in a different database management node.

### Claim 3 (depends on 1)

The method of claim 1, further comprising hashing a received key value identifying a data object, wherein a resulting hash value identifies a logical data store in which the data object is stored.

### Claim 4 (depends on 1)

The method of claim 1, wherein the at least one of the database management nodes maintaining the global data structure further maintains a cache comprising recently accessed data objects.

### Claim 5 (depends on 4)

The method of claim 4, further comprising, upon receiving a request for a value of a data object that is stored the cache, transmitting the value to a database management node that stores a logical data store corresponding to the data object in order to confirm that the value of the data object stored in the cache is current.

### Claim 6 (depends on 1)

The method of claim 1, further comprising blocking access to logical data stores that are being migrated until the migration successfully completes.

### Claim 7 (depends on 1)

The method of claim 1, wherein data is stored in the logical data stores in a compressed format.

### Claim 8

A non-transitory computer-readable storage medium comprising instructions for storing data objects among a plurality of database management nodes operating on a plurality of computers in communication with each other over a computer network by carrying out the steps of:
maintaining a global data structure in at least one of the database management nodes, wherein the global data structure maps each of a plurality of logical data stores to a corresponding one of the database management nodes in which the logical data store is stored and, upon receipt of a key value identifying a data object, provides an identity of a database management node storing a logical data store in which the data object is stored;
storing each data object in one of the logical data stores, wherein the logical data store corresponds to a key value of the data object; and
enabling migration of logical data stores from one database management node to another database management node to rebalance memory consumption among the database management nodes while simultaneously allowing concurrent and non-blocking access to data objects stored in other logical data stores that are not involved in the migration.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the global data structure is divided into partitions that are each stored in a different database management node.

### Claim 10 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, further carrying out the step of hashing a received key value identifying a data object, wherein a resulting hash value identifies a logical data store in which the data object is stored.

### Claim 11 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the at least one of the database management nodes maintaining the global data structure further maintains a cache comprising recently accessed data objects.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, further carrying out the step of, upon receiving a request for a value of a data object that is stored the cache, transmitting the value to a database management node that stores a logical data store corresponding to the data object in order to confirm that the value of the data object stored in the cache is current.

### Claim 13 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, further carrying out the step of blocking access to logical data stores that are being migrated until the migration successfully completes.

### Claim 14 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein data is stored in the logical data stores in a compressed format.

### Claim 15

A distributed data management system comprising a plurality of computers, each including a memory and in communication with each other over a computer network, wherein the plurality of computers by support execution of a plurality database management nodes configured to:
maintain a global data structure in at least one of the database management nodes, wherein the global data structure maps each of a plurality of logical data stores to a corresponding one of the database management nodes in which the logical data store is stored and, upon receipt of a key value identifying a data object, provides an identity of a database management node storing a logical data store in which the data object is stored;
store each data object in one of the logical data stores, wherein the logical data store corresponds to a key value of the data object; and
enable migration of logical data stores from one database management node to another database management node to rebalance memory consumption among the database management nodes while simultaneously allowing concurrent and non-blocking access to data objects stored in other logical data stores that are not involved in the migration.

### Claim 16 (depends on 15)

The distributed data management system of claim 15, wherein the global data structure is divided into partitions that are each stored in a different database management node.

### Claim 17 (depends on 15)

The distributed data management system of claim 15, further configured to hash a received key value identifying a data object, wherein a resulting hash value identifies a logical data store in which the data object is stored.

### Claim 18 (depends on 15)

The distributed data management system of claim 15, wherein the at least one of the database management nodes maintaining the global data structure further maintains a cache comprising recently accessed data objects.

### Claim 19 (depends on 18)

The distributed data management system of claim 18, further configured to, upon receiving a request for a value of a data object that is stored the cache, transmit the value to a database management node that stores a logical data store corresponding to the data object in order to confirm that the value of the data object stored in the cache is current.

### Claim 20 (depends on 15)

The distributed data management system of claim 15, further configured to block access to logical data stores that are being migrated until the migration successfully completes.
