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.