Data Modification Language (DML)

The disk I/O per row in the RLV store is substantially less than in the IQ main store, thus enabling smaller-granularity DML.

Row-level snapshot isolation allows concurrent DML, whereas table-level snapshot isolation does not.

With an insert transaction (including bulk loads), new rows are added to the RLV store. Data is only inserted into the IQ main store by the merge operation. There is never a lock on an insert because the RLV store is an append-only store. Insert has the advantage of leveraging the fully bulk parallel load engine.

With a delete transaction, there is a lock. When a row is deleted from an RLV-enabled table, the data is not removed from the RLV store during commit. Instead, all deleted rows that are committed remain in-memory until a merge, but are invisible to query operations.

An update transaction is implemented as a delete plus an insert.

Merging the RLV store with the IQ main store does not free up memory used by open transactions, this memory is held until the transaction is closed.

Related concepts
Table-Level DML Locking Considerations