DELTA STORE GIVING ROW-LEVEL VERSIONING SEMANTICS TO A NON-ROW-LEVEL VERSIONING UNDERLYING STORE
First Claim
1. A method for a database system, comprising:
- establishing a column-based in-memory database including a main store and a delta store, wherein the main store does not allow concurrent transactions on a same table and the delta store has a plurality of row-visibility bitmaps implementing a row-level versioning mechanism that allows concurrent transactions on the same table;
receiving a transaction associated with the column-based in-memory database;
for each table read by the transaction, determining a version of the table in the delta store that represents a transaction-consistent snapshot of the database visible to the transaction, wherein each table is represented in the main store and the delta store, and each version of the table is represented by one or more bitmaps;
upon execution of a Data Manipulation Language (DML) as part of the transaction, for each table written by the transaction, recording data changes generated by the transaction in the one or more bitmaps that represent a private version of the table; and
upon commit of the transaction, for each table written by the transaction, generating a new public version of the table based on the private version of the table, wherein the public version represents a new transaction-consistent snapshot of the database visible to subsequent transactions.
1 Assignment
0 Petitions
Accused Products
Abstract
A delta store giving row-level versioning semantics to a non-row-level versioning underlying store is described. An example method includes establishing a column-based in-memory database including a main store and a delta store, where the main store does not allow concurrent transactions on a same table and the delta store has a plurality of row-visibility bitmaps implementing a row-level versioning mechanism that allows concurrent transactions on the same table. A transaction associated with the column-based in-memory database is received. For each table read by the transaction, a version of the table in the delta store that represents a transaction-consistent snapshot of the database visible to the transaction is determined. Each table is represented in the main store and the delta store; and each version of the table is represented by one or more bitmaps. Upon execution of a DML as part of the transaction, for each table written by the transaction, the data changes generated by the transaction is recorded in the one or more bitmaps that represent a private version of the table. Upon commit of the transaction, for each table written by the transaction, a new public version of the table is generated based on the private version of the table, and the public version represents a new transaction-consistent snapshot of the database visible to subsequent transactions.
48 Citations
21 Claims
-
1. A method for a database system, comprising:
-
establishing a column-based in-memory database including a main store and a delta store, wherein the main store does not allow concurrent transactions on a same table and the delta store has a plurality of row-visibility bitmaps implementing a row-level versioning mechanism that allows concurrent transactions on the same table; receiving a transaction associated with the column-based in-memory database; for each table read by the transaction, determining a version of the table in the delta store that represents a transaction-consistent snapshot of the database visible to the transaction, wherein each table is represented in the main store and the delta store, and each version of the table is represented by one or more bitmaps; upon execution of a Data Manipulation Language (DML) as part of the transaction, for each table written by the transaction, recording data changes generated by the transaction in the one or more bitmaps that represent a private version of the table; and upon commit of the transaction, for each table written by the transaction, generating a new public version of the table based on the private version of the table, wherein the public version represents a new transaction-consistent snapshot of the database visible to subsequent transactions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
11. A system, comprising:
-
a column store establisher, configured to establish a column-based in-memory database including a main store and a delta store, wherein the main store does not allow concurrent transactions on a same table and the delta store has a plurality of row-visibility bitmaps implementing a row-level versioning mechanism that allows concurrent transactions on the same table; a transaction receiver, configured to receive a transaction associated with the column-based in-memory database; a version determiner, for each table read by the transaction, configured to determine a version of the table in the delta store that represents a transaction-consistent snapshot of the database visible to the transaction, wherein each table is represented in the main store and the delta store, and each version of the table is represented by one or more bitmaps; a transaction recorder, upon execution of a Data Manipulation Language (DML) as part of the transaction, for each table written by the transaction, configured to record data changes generated by the transaction in the one or more bitmaps that represent a private version of the table; and a public version generator, upon commit of the transaction, for each table written by the transaction, configured to generate a new public version of the table based on the private version of the table, wherein the public version represents a new transaction-consistent snapshot of the database visible to subsequent transactions.
-
-
21. A computer program product comprising a computer readable storage medium having instructions encoded thereon that, when executed by a processor, cause the processor to perform operations comprising:
-
establishing a column-based in-memory database including a main store and a delta store, wherein the main store does not allow concurrent transactions on a same table and the delta store has a plurality of row-visibility bitmaps implementing a row-level versioning mechanism that allows concurrent transactions on the same table; receiving a transaction associated with the column-based in-memory database; for each table read by the transaction, determining a version of the table in the delta store that represents a transaction-consistent snapshot of the database visible to the transaction, wherein each table is represented in the main store and the delta store, and each version of the table is represented by one or more bitmaps; upon execution of a Data Manipulation Language (DML) as part of the transaction, for each table written by the transaction, recording data changes generated by the transaction in the one or more bitmaps that represent a private version of the table; and upon commit of the transaction, for each table written by the transaction, generating a new public version of the table based on the private version of the table, wherein the public version represents a new transaction-consistent snapshot of the database visible to subsequent transactions.
-
Specification