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)

Reply via email to