IP Library › Granted Patent US 12,045,254
Granted Patent B2
US 12,045,254 · App. 18/170,225 · Granted Jul 23, 2024

Randomized data distribution in highly parallel database management system

Inventors: George Kondiles (Chicago, IL); Rhett Colin Starr (Long Grove, IL); Joseph Jablonski (Chicago, IL)
Assignee: Ocient Inc.
G06F16/27G06F12/0238G06F13/1673G06F13/28G06F13/4282G06F15/17331G06F16/22G06F16/2358G06F16/2365G06F16/25G06F16/285H04L67/1097H04L67/568G06F3/0656G06F3/067G06F2212/202G06F2213/0026G06F2213/0032
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 12,045,254
App. No.
18/170,225
Granted
Jul 23, 2024
Kind
B2
Abstract

A payload store within a database management system includes a first set of nodes that include a first node that includes a memory, a network interface, a storage device, and a processing unit. The processing unit receives, via the network interface, a first portion of data to be stored in a plurality of storage devices of the first set of nodes, and splits the first portion into a first set of data rows that includes a plurality of subsets of data rows and a last subset of data rows. The processing unit further randomly assigns the plurality of subsets of data rows and the last subset of data rows between the first set of nodes and stores a first number of data rows in the storage device. The processing unit further sends, via the network interface, a second number of data rows to the second node for storage therein.

Claims (42)

1. A payload store within a database management system, the payload store comprising:

a coding cluster includes a first set of nodes, wherein a first node of the first set of nodes includes:

a memory;

a network interface;

a storage device; and

a processing unit operatively coupled to the memory, the network interface, and the storage device, wherein the processing unit is operable to:

receive, via the network interface, a first portion of data, wherein the first portion is to be stored in a plurality of storage devices of the coding cluster, wherein the plurality of storage devices includes the storage device;

split the first portion into a first set of data rows, wherein the first set of data rows includes a plurality of subsets of data rows and a last subset of data rows;

randomly assign the plurality of subsets of data rows and the last subset of data rows between the first set of nodes, wherein a first number of data rows of the plurality of subsets of data rows is assigned to the first node and a second number of data rows of the plurality of subsets of data rows is assigned to a second node of the first set of nodes;

store, by the first node, the first number of data rows in the storage device; and

send, via the network interface, the second number of data rows to the second node for storage therein.

2. The payload store of claim 1 further comprises:

a second coding cluster of a set of coding clusters that includes a second set of nodes, wherein the set of coding clusters includes the coding cluster, and wherein a third node of the second set of nodes includes:

a second memory;

a second network interface;

a second storage device; and

a second processing unit operatively coupled to the second memory, the second network interface, and the second storage device, wherein the second processing unit is operable to:

receive, via the second network interface, a second portion of the data, wherein the second portion is to be stored in a second plurality of storage devices of the second coding cluster, wherein the second plurality of storage devices includes the second storage device;

split the second portion into a second set of data rows, wherein the second set of data rows includes a second plurality of subsets of data rows and a second last subset of data rows;

randomly assign the second plurality of subsets of data rows and the second last subset of data rows between the second set of nodes, wherein a third number of data rows of the second plurality of subsets of data rows is assigned to the third node and a fourth number of data rows of the second plurality of subsets of data rows is assigned to a fourth node of the second set of nodes;

store, by the third node, the third number of data rows in the second storage device; and

send, via the second network interface, the fourth number of data rows to the fourth node for storage therein.

3. The payload store of claim 2 , wherein the third number is equal to the first number.

4. The payload store of claim 2 , wherein the fourth number is equal to the second number.

5. The payload store of claim 2 , wherein the first set of nodes and the second set of nodes have an equal number of nodes.

6. The payload store of claim 1 , wherein the first number and the second number are equal.

7. The payload store of claim 1 , wherein the first set of nodes further comprises:

a parity node, wherein the first node sends via the network interface, the first and second number of data rows to the parity node, and wherein the parity node is operable to calculate parity information for the first and second number of data rows.

8. The payload store of claim 7 , wherein the parity node stores the parity information in a parity storage device of the parity node.

9. The payload store of claim 1 , wherein the processing unit is further operable to:

compress the first portion of data to produce a compressed first portion; and

split the compressed first portion into the first set of data rows.

10. The payload store of claim 1 , wherein each subset of the plurality of subsets of data rows has a first size and the last subset of data rows has a size that is equal to or less than the first size.

11. The payload store of claim 1 , wherein processing unit is further operable to randomly assign the plurality of subsets of data rows and the last subset of data rows by:

randomly assigning a third number of data rows of the first set of data rows to a third node of the first set of nodes, wherein the third number of data rows includes the last subset of data rows of the first set of data rows, and wherein the third number is equal to or less than the first and second numbers.

12. The payload store of claim 1 , wherein the second node of the first set of nodes includes:

a second memory;

a second network interface;

a second storage device; and

a second processing unit operatively coupled to the second memory, the second network interface, and the second storage device, wherein the second processing unit is operable to:

receive, via the second network interface, the second number of data rows from the first node; and

store the second number of data rows in the second storage device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2023
From: OCIENT LLC
To: OCIENT INC.
Reel/Frame 062821/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2023
From: KONDILES, GEORGE; STARR, RHETT COLIN; JABLONSKI, JOSEPH
To: OCIENT LLC
Reel/Frame 062806/0001 →
Continuity (4)
Continuation 15722900 · Oct 2, 2017
Provisional Application 62403328 · Oct 3, 2016
Provisional Application 62403231 · Oct 3, 2016
Related Publication 20230195749A1 · Jun 22, 2023