Full and partial materialization of data from an in-memory array to an on-disk page structure
First Claim
Patent Images
1. A method for implementation by one or more data processors forming part of at least one computing system, the method comprising:
- maintaining an in-memory array in main system memory of the at least one computing system, the in-memory array comprising a column of a database table forming part of an in-memory database system;
writing, to a database object associated with the column, one or more changes to the column resulting from one or more operations executed on the column by a transaction thread comprising a plurality of operations;
marking the database object for materialization in response to completion of all of the plurality of operations of the transaction thread;
allocating, by the transaction thread, one or more pages; and
materializing, based on the marking, the column from the in-memory array to the one or more pages stored on a persistent storage, the materializing comprising applying the one or more changes written in the database object, the one or more pages comprising one or more blocks for storing the column,wherein the database object forms part of an object tree corresponding to fragments in a delta store, the object tree including fragment objects in a fragment level, columns in a column level, and dictionaries in a dictionary level;
wherein the persisting is iteratively performed at a fragment level of the in-memory array, at a column level of the in-memory array, and at a dictionary level of the in-memory array;
wherein the materializing comprises persisting one or more metadata values and one or more data values from the in-memory array to the one or more blocks of the one or more pages;
wherein the one or more metadata values comprise one or more of a row count, an encoding type, a bit size, a value count, and a number of blocks;
wherein the one or more data values comprise one or more of a consolidated column data array, a column data value, and a dictionary value array.
1 Assignment
0 Petitions
Accused Products
Abstract
Changes to data in a column in an in memory array resulting from operations of a transaction thread can be written to a database object associated with the column. The database object can be marked for materialization upon completion of all of the plurality of operations of the transaction thread such that the column and the changes are materialized from the in-memory array to one or more pages stored on a persistent storage based on the marking.
115 Citations
12 Claims
-
1. A method for implementation by one or more data processors forming part of at least one computing system, the method comprising:
-
maintaining an in-memory array in main system memory of the at least one computing system, the in-memory array comprising a column of a database table forming part of an in-memory database system; writing, to a database object associated with the column, one or more changes to the column resulting from one or more operations executed on the column by a transaction thread comprising a plurality of operations; marking the database object for materialization in response to completion of all of the plurality of operations of the transaction thread; allocating, by the transaction thread, one or more pages; and materializing, based on the marking, the column from the in-memory array to the one or more pages stored on a persistent storage, the materializing comprising applying the one or more changes written in the database object, the one or more pages comprising one or more blocks for storing the column, wherein the database object forms part of an object tree corresponding to fragments in a delta store, the object tree including fragment objects in a fragment level, columns in a column level, and dictionaries in a dictionary level; wherein the persisting is iteratively performed at a fragment level of the in-memory array, at a column level of the in-memory array, and at a dictionary level of the in-memory array; wherein the materializing comprises persisting one or more metadata values and one or more data values from the in-memory array to the one or more blocks of the one or more pages; wherein the one or more metadata values comprise one or more of a row count, an encoding type, a bit size, a value count, and a number of blocks; wherein the one or more data values comprise one or more of a consolidated column data array, a column data value, and a dictionary value array. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product comprising a non-transitory machine readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
maintaining an in-memory array in main system memory of at least one computing system, the in-memory array comprising a column of a database table forming part of an in-memory database system; writing, to a database object associated with the column, one or more changes to the column resulting from one or more operations executed on the column by a transaction thread comprising a plurality of operations; marking the database object for materialization in response to completion of all of the plurality of operations of the transaction thread; allocating, by the transaction thread, one or more pages; and materializing, based on the marking, the column from the in-memory array to the one or more pages stored on a persistent storage, the materializing comprising applying the one or more changes written in the database object, the one or more pages comprising one or more blocks for storing the column, wherein the database object forms part of an object tree corresponding to fragments in a delta store, the object tree including fragment objects in a fragment level, columns in a column level, and dictionaries in a dictionary level; wherein the persisting is iteratively performed at a fragment level of the in-memory array, at a column level of the in-memory array, and at a dictionary level of the in-memory array; wherein the materializing comprises persisting one or more metadata values and one or more data values from the in-memory array to the one or more blocks of the one or more pages; wherein the one or more metadata values comprise one or more of a row count, an encoding type, a bit size, a value count, and a number of blocks; wherein the one or more data values comprise one or more of a consolidated column data array, a column data value, and a dictionary value array. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system comprising:
computer hardware comprising at least one programmable processor configured to execute instructions causing the at least one programmable processor to perform operations comprising; maintaining an in-memory array in main system memory of at least one computing system, the in-memory array comprising a column of a database table forming part of an in-memory database system; writing, to a database object associated with the column, one or more changes to the column resulting from one or more operations executed on the column by a transaction thread comprising a plurality of operations; marking the database object for materialization in response to completion of all of the plurality of operations of the transaction thread; allocating, by the transaction thread, one or more pages; and materializing, based on the marking, the column from the in-memory array to the one or more pages stored on a persistent storage, the materializing comprising applying the one or more changes written in the database object, the one or more pages comprising one or more blocks for storing the column, wherein the database object forms part of an object tree corresponding to fragments in a delta store, the object tree including fragment objects in a fragment level, columns in a column level, and dictionaries in a dictionary level; wherein the persisting is iteratively performed at a fragment level of the in-memory array, at a column level of the in-memory array, and at a dictionary level of the in-memory array; wherein the materializing comprises persisting one or more metadata values and one or more data values from the in-memory array to the one or more blocks of the one or more pages; wherein the one or more metadata values comprise one or more of a row count, an encoding type, a bit size, a value count, and a number of blocks; wherein the one or more data values comprise one or more of a consolidated column data array, a column data value, and a dictionary value array.
Specification