Abstract:
The present disclosure involves systems, software, and computer implemented methods for moving a table from a source node to a destination node. In one example, the method includes receiving metadata associated with an in-memory database table stored at a source node. A table container is created responsive to receiving the metadata. The destination node sequentially requests, from the source node, portions of the table, wherein the table is serialized at the source node to provide a serialized sequence of table portions. Sequentially requesting comprises sending a request for a next portion of the table after processing a received portion, which includes receiving a portion of the serialized table, deserializing the received portion, adding the deserialized portion to the created table container, and in response to an end of file indication associated with the received portion, ending the requests and finalizing the table.
Abstract:
A locking mechanism in a delta-store-based database to support long running transactions across multiple RID spaces is described. An example method includes establishing a column-based in-memory database including a main store and a delta store. A delete or an update statement is executed with a transaction on a table having plurality of table versions. The table versions are represented by bitmaps in the delta store and the bitmaps and table fragments corresponding to the table versions implement RID spaces for the table. A lock on a row of the table manipulated by the delete or the update statement is requested to preclude other transaction from deleting or updating an obsolete version of data. Upon a successful validation that the row to be locked is not the obsolete version in the RID spaces of the table, a lock is granted to the transaction.
Abstract:
Data records of a data set can be stored in multiple main part fragments retained in on-disk storage. Each fragment can include a number of data records that is equal to or less than a defined maximum fragment size. Using a compression that is optimized for each fragment, each fragment can be compressed. After reading at least one of the fragments into main system memory from the on-disk storage, an operation can be performed on the fragment or fragments while the in the main system memory.
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.
Abstract:
A plurality of data records of a data set can be stored in a plurality of main part fragments, at least one of which is an old fragment stored on-disk. A number of one or more data records in the old fragment that have been marked for deletion can be determined to be greater than a threshold number, and the old fragment can be loaded into main system memory. A merge of the old fragment can be performed to remove the one or more data records marked for deletion.
Abstract:
A locking mechanism in a delta-store-based database to support long running transactions across multiple RID spaces is described. An example method includes establishing a column-based in-memory database including a main store and a delta store. A delete or an update statement is executed with a transaction on a table having plurality of table versions. The table versions are represented by bitmaps in the delta store and the bitmaps and table fragments corresponding to the table versions implement RID spaces for the table. A lock on a row of the table manipulated by the delete or the update statement is requested to preclude other transaction from deleting or updating an obsolete version of data. Upon a successful validation that the row to be locked is not the obsolete version in the RID spaces of the table, a lock is granted to the transaction.
Abstract:
A plurality of data records of a data set can be stored in a plurality of main part fragments, at least one of which is an old fragment stored on-disk. A number of one or more data records in the old fragment that have been marked for deletion can be determined to be greater than a threshold number, and the old fragment can be loaded into main system memory. A merge of the old fragment can be performed to remove the one or more data records marked for deletion.