Package io.permazen.kv.mvcc
package io.permazen.kv.mvcc
Utility classes for MVCC type operations using a
KVStore
.-
ClassDescriptionWrapper class that presents an
AtomicKVStore
view of aKVDatabase
, using individual transactions for each operation.Extension of theKVStore
interface for implementations that support atomic, batched reads and writes.AKVTransaction
that is based on a snapshot from an originalKVTransaction
and that can, at some arbitrary later time, be merged back into a newKVTransaction
from the same database, assuming no conflicting changes have occurred in the meantime.Represents an MVCC conflict.Presents a mutable view of an underlying read-onlyKVStore
and records the mutations in memory.Provides aKVStore
view of an underlyingConcurrentNavigableMap<byte[], byte[]>
whose keys are sorted lexicographically as unsigned bytes.Straightforward implementation of theDeltaKVStore
interface.Represents a set of mutations that can be applied to aKVStore
.Represents an MVCC conflict in which a key that was read in one transaction was adjusted viaKVStore.adjustCounter()
in another, simultaneous transaction.Represents an MVCC conflict in which a key or range of keys that was read in one transaction was removed in another, simultaneous transaction.Holds a set of reads from aKVStore
.Represents an MVCC conflict in which a key that was read in one transaction had its value changed in another, simultaneous transaction.KVDatabase
implementation based on an underlyingAtomicKVStore
using snapshot views and optimistic locking to provide concurrent transactions and linearizable ACID consistency.SnapshotKVDatabase
transaction.Exception thrown when a transaction fails because of an MVCC conflict.Holds a set of writes to aKVStore
.