IP Library Granted Patent US 10,019,504
Granted Patent B2
US 10,019,504 · App. 14/805,622 · Granted Jul 10, 2018

Determination of data partition

Inventors: Jian Chang Huang (Beijing, CN); Lei Li (Beijing, CN); Xin Sheng Mao (Beijing, CN); Jia Tan (Beijing, CN); Ya Xin Wu (Beijing, CN)
Assignee: International Business Machines Corporation
G06F17/30584G06F17/30289G06F17/30321G06F17/30339
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,019,504
App. No.
14/805,622
Granted
Jul 10, 2018
Kind
B2
Abstract

Partitioning a set of data using a binary format to more evenly distribute data values across a set of data partitions. By using a system of matching binary indices in a “back to front” manner, data values stored in or associated with data partitions are more evenly balanced.

Claims (65)

1. A method comprising:

receiving a partition key value, wherein the partition key value corresponds to a data value;

determining a data partition based, at least in part, on a binary tree structure that includes (i) a set of root nodes and (ii) a set of leaf nodes that represents a set of data partitions that include the data partition, wherein a data partition identification corresponding to the data partition correlates to the partition key value; and

processing, at least in part, the data value using the data partition by:

determining two leaf nodes that are each a child of a single root node;

redistributing to a data partition corresponding to the single root node a subset of a set of data values previously distributed to two data partitions corresponding to the two leaf nodes; and

determining the data partition identification corresponding to the data partition corresponding to the single root node; wherein:

the partition key value is expressed in a binary format;

the partition key value is determined by taking digits of the data value in a back-to-front manner;

the data partition identification is expressed in a binary format; and

at least the determining steps are performed by computer software running on computer hardware.

2. The method of claim 1 , wherein the processing step includes:

distributing the data value to the data partition.

3. The method of claim 1 , wherein the processing step includes:

deleting the data value from the data partition.

4. The method of claim 1 , wherein the processing step includes:

determining a leaf node corresponding to the data partition;

adding two child leaf nodes below the leaf node, wherein the two child leaf nodes correspond to two new data partitions respectively;

determining a data partition identification corresponding to each of the two child leaf nodes by appending a ‘1’ or a ‘0’ to the data partition identification; and

redistributing to one of the two new data partitions a subset of a set of data values previously distributed to the data partition.

5. A computer program product comprising a computer readable storage medium having stored thereon:

first instructions executable by a device to cause the device to receive a partition key value, wherein the partition key value corresponds to a data value;

second instructions executable by a device to cause the device to determine a data partition, wherein the second instructions use a binary tree structure to determine a data partition, wherein the binary tree structure includes (i) a set of root nodes and (ii) a set of leaf nodes that represent a set of data partitions, including the data partition, and wherein a data partition identification corresponding to the data partition correlates to the partition key value; and

third instructions executable by a device to cause the device to process the data value using the data partition, wherein the third instruction to process the data value include:

fourth instructions executable by a device to cause the device to determine two leaf nodes that are each a child of a single root node;

fifth instructions executable by a device to cause the device to redistribute to a data partition corresponding to the single root node a subset of a set of data values previously distributed to two data partitions corresponding to the two leaf nodes; and

sixth instructions executable by a device to cause the device to determine the data partition identification corresponding to the data partition corresponding to the single root node;

wherein:

the partition key value is expressed in a binary format;

the partition key value is determined by taking digits of the data value in a back-to-front manner; and

the data partition identification is expressed in a binary format.

6. The computer program product of claim 5 , wherein the third instructions to process the data value include:

fourth instructions executable by a device to cause the device to distribute the data value to the data partition.

7. The computer program product of claim 5 , wherein the third instructions to process the data value include:

fourth instruction executable by a device to cause the device to delete the data value from the data partition.

8. The computer program product of claim 5 , wherein the third instructions to process the data value include:

fourth instructions executable by a device to cause the device to determine a leaf node corresponding to the data partition;

fifth instructions executable by a device to cause the device to add two child leaf nodes below the leaf node, wherein the two child leaf nodes correspond to two new data partitions respectively;

sixth instructions executable by a device to cause the device to determine a data partition identification corresponding to each of the two child leaf nodes by appending a ‘1’ or a ‘0’ to the data partition identification; and

seventh instructions executable by a device to cause the device to redistribute to one of the two new data partitions a subset of a set of data values previously distributed to the data partition.

9. A computer system comprising:

a processor set; and

a computer readable storage medium;

wherein:

the processor set is structured, located, connected, and/or programmed to execute instructions stored on the computer readable storage medium; and

the instructions include:

first instructions executable by a device to cause the device to receive a partition key value, wherein the partition key value corresponds to a data value;

second instructions executable by a device to cause the device to determine a data partition, wherein the second instructions to determine a data partition use a binary tree structure that includes (i) a set of root nodes and (ii) a set of leaf nodes that represent a set of data partitions, including the data partition, and wherein a data partition identification corresponding to the data partition correlates to the partition key value; and

third instructions executable by a device to cause the device to process the data value using the data partition, wherein the third instruction to process the data value include:

fourth instructions executable by a device to cause the device to determine two leaf nodes that are each a child of a single root node;

fifth instructions executable by a device to cause the device to redistribute to a data partition that corresponds to the single root node a subset of a set of data values previously distributed to two data partitions that correspond to the two leaf nodes; and

sixth instructions executable by a device to cause the device to determine the data partition identification that corresponds to the data partition that corresponds to the single root node;

wherein:

the partition key value is expressed in a binary format;

the partition key value is determined by taking digits of the data value in a back-to-front manner; and

the data partition identification is expressed in a binary format.

10. The computer system of claim 9 , wherein the third instructions to process the data value include:

fourth instructions executable by a device to cause the device to distribute the data value to the data partition.

11. The computer system of claim 9 , wherein the third instructions to process the data value include:

fourth instruction executable by a device to cause the device to delete the data value from the data partition.

12. The computer system of claim 9 , wherein the third instruction to process the data value include:

fourth instructions executable by a device to cause the device to determine a leaf node that corresponds to the data partition;

fifth instructions executable by a device to cause the device to add two child leaf nodes below the leaf node, wherein the two child leaf nodes correspond to two new data partitions respectively;

sixth instructions executable by a device to cause the device to determine a data partition identification that corresponds to each of the two child leaf nodes, wherein a ‘1’ or a ‘0’ is appended to the data partition identification; and

seventh instructions executable by a device to cause the device to redistribute to one of the two new data partitions a subset of a set of data values previously distributed to the data partition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: HUANG, JIAN CHANG; LI, LEI; MAO, XIN SHENG; TAN, JIA; WU, YA XIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036151/0223 →
Priority Claims (1)
CN 2014 1 0374827 · Jul 31, 2014 · national
Continuity (1)
Related Publication 20160034551A1 · Feb 4, 2016