Kamino-Tx: Atomic In-Place Updates for Non-Volatile Memory
Introduction
existing atomicity requires copying the old data before editing data
increases latency
decreases throughput
Kamino-Tx does not require copying data in the critical path (which can slow down byte-addressable persistent memory devices due to overhead)
maintains an additional copy of the data (off the critical path) to maintain atomicity
Kamino-Tx-Chain: in-place updates; roll back / forward to replicas
method:
there is a copy kept for all data
when changes need to be made the changes are made to the main memory and once the transaction can be applied the main memory is copied to the backup copy;
in the case of an error the backup copy is restored
Description
Comprised of:
heap manager: allows allocation and deallocation of persistent objects
transaction coordinator interface: allows applications to modify multiple persistent objects at the same time within a single transaction maintaining atomicity
log manager: tracks the persistent objects modified in a transaction
backup: of the entire heap manager
Safety properties:
dependent transactions must wait for a transaction's changes to propagate to the backup copy
dependent transactions must wait for the main copy to be rolled-back in the case of a failure
dependent transaction: one whose reads / writes intersect with any prior transactions
captures read-write locks for transactions and releases them when the the main and the backup copy are consistent (with respect to pending transaction)
Optimizations
storage requirement: 2 * dataSize → (1 + a) * dataSize where 0.0 < a < 1.0
Terms
atomic: in a way such that everything is performed in one step when viewed