The RLV Store Merge

The RLV store is an autonomous self-managing, in-memory store that merges into the IQ main store automatically (either periodically or when thresholds are reached).

The RLV merge process moves rows from committed row-level transactions stored in the RLV store to the IQ main store on a per table basis. The merged data becomes part of a new table level version of the same table, in the IQ main store.

A blocking merge waits for all write-transactions on the table to complete, then blocks all write operations until the merge is complete. A non-blocking merge allows existing and new write-operations to continue on the table while the merge is active.

The merge process can be triggered in one of three ways:

  1. Manually, by using the sp_iqmergerlvtable stored procedure. For example
    call sp_iqmergerlvstore('BLOCKING', 'my_table', 'DBA')
    which runs a blocking merge on the RLV-enabled table "DBA.my_table".
  2. Automatically, when a DDL or table-level DML statement is executed on an RLV-enabled table. For example
    alter table DBA.my_table add c2 int
    which forces a blocking merge on the RLV-enabled table "DBA.my_table", and then adds the new column "c2" to the table.
  3. Automatically, when a resource threshold is reached, such as the maximum number of rows in the RLV store for a given table, or the maximum amount of memory allowed for the RLV in memory store.

RLV merge failures are not typical. The only legitimate RLV merge failures would be due to the IQ main store running out of dbspace or experiencing storage errors (hardware or permission issues). If the RLV merge were to fail, the transaction would roll back. All changes to the IQ main store TLV version would be undone. This is the same process used when the server executes DML through a transaction.

Related concepts
Merge RLV Store into IQ Main Store