The definitions of specific terms are helpful when describing in-memory row-level
versioning.
- Data Definition Language (DDL) – refers to SQL commands which create or modify the schema of a
table, for example CREATE TABLE, ALTER TABLE, DROP
TABLE.
- Data Modification Language (DML) – refers to SQL commands which create or modify the data in a
table, for example INSERT, LOAD, UPDATE,
DELETE and TRUNCATE.
- Multi-Version Concurrency Control (MVCC) – a concurrency control mechanism providing stable read-only
versions so that writers do not block readers of the same table.
- Row-Level Versioning (RLV) – an MVCC versioning technique which logically versions table rows for a write
transaction, and allows concurrent writes to different rows of the same table.
Each time a writer commits a transaction, the server creates a new version of
the updated row, resulting in a different row-level version being created. An
RLV-enabled table is one in which row-level versioning is permitted.
- RLV Store – the write-optimized, in-memory store that works with the
existing, read-optimized, on-disk IQ main-store to make in-memory row-level
versioning possible.
- RLV Store Merge – the periodic asynchronous transfer of per-table in-memory data from the RLV
store to the IQ main store. The merge occurs automatically, but can also be
triggered manually. Only committed transactions are merged.
- Snapshot – the technique of establishing a stable version of an object,
determined at the start of a transaction.
- Table-Level Versioning (TLV) – an MVCC versioning technique which logically versions the entire table for a
write transaction, and does not allow concurrent writers of the same table. Each
time a writer commits a transaction, the server creates a new version of the
entire table, resulting in a different table-level version being created. A TLV
table is one which row-level versioning is not enabled.