Package io.permazen.kv.mvcc
package io.permazen.kv.mvcc
Utility classes for MVCC type operations using a
KVStore.-
ClassDescriptionWrapper class that presents an
AtomicKVStoreview of aKVDatabase, using individual transactions for each operation.Extension of theKVStoreinterface for implementations that support atomic, batched reads and writes.AKVTransactionthat is based on a snapshot from an originalKVTransactionand that can, at some arbitrary later time, be merged back into a newKVTransactionfrom the same database, assuming no conflicting changes have occurred in the meantime.Represents an MVCC conflict.Presents a mutable view of an underlying read-onlyKVStoreand records the mutations in memory.Provides anAtomicKVStoreview of an underlyingConcurrentNavigableMap<ByteData, ByteData>.Straightforward implementation of theDeltaKVStoreinterface.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.KVDatabaseimplementation based on an underlyingAtomicKVStoreusing snapshot views and optimistic locking to provide concurrent transactions and linearizable ACID consistency.SnapshotKVDatabasetransaction.Exception thrown when a transaction fails because of an MVCC conflict.Holds a set of writes to aKVStore.