In a database system, when an operation (a request or a transaction) that modifies
one or more rows of a table is performed, multiple images of the row that is being
modified (e.g., added, deleted, or updated) is stored in the table. State identifiers
are provided to identify the state of each row, such as a "before image" row and
an "after image" row. A before image row represents a row before a modification
or "mutation" operation is performed. An after image row represents the latest
row as processed by a current modification operation. A before image row is retained
in each table as long as the transaction that created or updated the row is active.
As soon as the transaction commits successfully, the before image rows become reusable
and can be reused by another request or transaction. The state identifier associated
with each row can also indicate that a "mutation" is not being performed on a row;
that is, an operation that modifies the contents of the row is not currently being performed.