Sergey Chugunov created IGNITE-16611:
----------------------------------------
Summary: Versioned Storage] POC - Version chain data structure
for RocksDB-based storage
Key: IGNITE-16611
URL: https://issues.apache.org/jira/browse/IGNITE-16611
Project: Ignite
Issue Type: Task
Components: persistence
Reporter: Sergey Chugunov
To support Concurrency Control and implement effective transactions new storage
capable of storing multiple versions of the same key is needed.
Key component of such storage is a special data structure called version chain:
it is a list of all versions of a particular key, with the most recent version
at the beginning (HEAD).
Each entry in the chain contains value, reference to the next entry in the
list, begin and end timestamps and id of active transaction that created this
version.
We need to implement this structure on top of RocksDB API.
We also need to implement Primary index with the following requirements and API:
* PK always points to the HEAD of version chain.
* Methods to manipulate versions: add new version to the chain, commit
uncommited version, abort uncommited version.
* Method to cleanup old versions from the chain.
* Method to scan over keys up to provided timestamp.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)