IP Library Granted Patent US 9,542,424
Granted Patent B2
US 9,542,424 · App. 12/827,972 · Granted Jan 10, 2017

Lifecycle-based horizontal partitioning

Inventors: Hasso Plattner (Schriesheim, DE); Martin Grund (Berlin, DE); Jens Krueger (Berlin, DE); Alexander Zeier (Berlin, DE)
Assignee: Hasso-Plattner-Institut Fur Softwaresystemtechnik GmbH
G06F17/30312
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,542,424
App. No.
12/827,972
Granted
Jan 10, 2017
Kind
B2
Abstract

The invention relates to a computer-implemented method for dynamically and horizontally partitioning a table of a relational database, wherein the table comprises records, wherein the records are mapped to a plurality of states, wherein the table is horizontally partitioned into a plurality of partitions, and wherein the plurality of states is mapped to the plurality of partitions. The method comprises the steps of changing the assignment of a first record from a first state to a second state, wherein the first state is mapped to a first partition, wherein the second state is mapped to a second partition, wherein the first partition is not the second partition, and storing the first record in the second partition. The invention further relates to a computer system implementing the abovementioned method for dynamically and horizontally partitioning a table of a relational database.

Claims (72)

1. A computer-implemented online transaction processing method for dynamically and horizontally partitioning a table of a relational database, wherein the method comprises the steps of:

providing a computer system comprising the relational database, the table of the relational database being of a column-store type and including:

a main store, wherein the main store is organized as a column-store and horizontally partitioned into a plurality of partitions, and

a delta store, wherein the delta store is organized as a column-store, wherein the delta store handles updates and inserts as an append operation, and wherein the delta store receives all inserts;

inserting a first record into the table by appending it to the delta store;

merging the delta store into the main store to store the first record in a first partition of the main store;

changing an assignment of the first record from a first state to a second state, wherein the first state is mapped to the first partition, and the second state is mapped to a second partition of the main store, wherein changing the assignment of the first record relates to the first record transitioning through states of a dedicated lifecycle;

storing the first record in the second partition and removing the first record from the first partition; and

updating the first record in the main store by inserting a second record to the delta store and marking the first record as not valid,

wherein the table further comprises attributes,

wherein the attributes comprise at least one state attribute, wherein the at least one state attribute correspond to the states of the dedicated lifecycle,

wherein each record comprises attribute values bijectively corresponding to the attributes,

wherein each record comprises at least one state attribute value bijectively corresponding to the at least one state attribute, and

wherein a state of a record depends on the at least one state attribute value.

2. The method according to claim 1 ,

wherein the step of storing the first record in the second partition occurs asynchronously to the step of changing the assignment of the first record from the first state to the second state.

3. The method according to claim 1 ,

wherein the table has a plurality of records including the first record and the second record, wherein the plurality of records are only changed by an insert-only approach.

4. The method according to claim 1 ,

wherein the table is stored using column storage, and

wherein each column containing the at least one state attribute is stored uncompressed.

5. The method according to claim 1 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record, which includes:

inserting a new version of the first record, and

updating the last-valid version of the first record as no longer valid.

6. The method according to claim 1 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record in-place, wherein the column containing the state attribute is stored uncompressed.

7. A computer system for online transaction processing, wherein the computer system implements a computer program for dynamically and horizontally partitioning a table of a relational database, wherein the computer system comprises:

a memory; and

a processor,

wherein the memory stores the relational database, the table of the relational database being of a column-store type and including:

a main store, wherein the main store is organized as a column-store and horizontally partitioned into a plurality of partitions, and

a delta store, wherein the delta store is organized as a column-store, wherein the delta store handles updates and inserts as an append operation, and wherein the delta store receives all inserts,

wherein the computer program is executed by the processor to implement the following steps:

inserting a first record into the table by appending it to the delta store,

merging the delta store into the main store to store the first record in a first partition of the main store,

changing an assignment of the first record from a first state to a second state, wherein the first state is mapped to the first partition, and the second state is mapped to a second partition of the main store, wherein changing the assignment of the first record relates to the first record transitioning through states of a dedicated lifecycle,

storing the first record in the second partition and removing the first record from the first partition, and

updating the first record in the main store by inserting a second record to the delta store and marking the first record as not valid,

wherein the table further comprises attributes,

wherein the attributes comprise at least one state attribute, wherein the at least one state attribute correspond to the states of the dedicated lifecycle,

wherein each record comprises attribute values bijectively corresponding to the attributes,

wherein each record comprises at least one state attribute value bijectively corresponding to the at least one state attribute, and

wherein a state of a record depends on the at least one state attribute value.

8. The computer system of claim 7 , wherein the step of storing the first record in the second partition occurs asynchronously to the step of changing the assignment of the first record from the first state to the second state.

9. The computer system of claim 7 , wherein the table has a plurality of records including the first record and the second record, wherein the plurality of records are only changed by an insert-only approach.

10. The computer system of claim 7 , wherein the table is stored using column storage, and

wherein each column containing the at least one state attribute is stored uncompressed.

11. The system according to claim 7 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record, which includes:

inserting a new version of the first record, and

updating the last-valid version of the first record as no longer valid.

12. The system according to claim 7 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record in-place, wherein the column containing the state attribute is stored uncompressed.

13. A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium stores a computer program for controlling a computer system for online transaction processing for dynamically and horizontally partitioning a table of a relational database, the computer system including a memory and a processor, the computer program controlling the computer system to execute processing comprising:

implementing the relational database, the table of the relational database being of a column-store type and including:

a main store, wherein the main store is organized as a column-store and horizontally partitioned into a plurality of partitions, and

a delta store, wherein the delta store is organized as a column-store, wherein the delta store handles updates and inserts as an append operation, and wherein the delta store receives all inserts;

inserting a first record into the table by appending it to the delta store;

merging the delta store into the main store to store the first record in a first partition of the main store;

changing an assignment of the first record from a first state to a second state, wherein the first state is mapped to the first partition, and the second state is mapped to a second partition of the main store, wherein changing the assignment of the first record relates to the first record transitioning through states of a dedicated lifecycle;

storing the first record in the second partition and removing the first record from the first partition; and

updating the first record in the main store by inserting a second record to the delta store and marking the first record as not valid,

wherein the table further comprises attributes,

wherein the attributes comprise at least one state attribute, wherein the at least one state attribute correspond to the states of the dedicated lifecycle,

wherein each record comprises attribute values bijectively corresponding to the attributes,

wherein each record comprises at least one state attribute value bijectively corresponding to the at least one state attribute, and

wherein a state of a record depends on the at least one state attribute value.

14. The non-transitory computer-readable medium of claim 13 , wherein the step of storing the first record in the second partition occurs asynchronously to the step of changing the assignment of the first record from the first state to the second state.

15. The non-transitory computer-readable medium of claim 13 , wherein the table has a plurality of records including the first record and the second record, wherein the plurality of records are only changed by an insert-only approach.

16. The non-transitory computer-readable medium of claim 13 , wherein the table is stored using column storage, and

wherein each column containing the at least one state attribute is stored uncompressed.

17. The non-transitory computer-readable medium of claim 13 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record, which includes:

inserting a new version of the first record, and

updating the last-valid version of the first record as no longer valid.

18. The non-transitory computer-readable medium of claim 13 , wherein the step of changing an assignment is performed by updating a state attribute value of the first record in-place, wherein the column containing the state attribute is stored uncompressed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2010
From: GRUND, MARTIN; KRUEGER, JENS; ZEIER, ALEXANDER; PLATTNER, HASSO
To: HASSO-PLATTNER-INSTITUT FUR SOFTWARESYSTEMTECHNIK GMBH
Reel/Frame 024940/0510 →
Continuity (3)
Provisional Application 61221624 · Jun 30, 2009
Provisional Application 61333803 · May 12, 2010
Related Publication 20110161379A1 · Jun 30, 2011