[ 
https://issues.apache.org/jira/browse/IGNITE-16611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Chugunov updated IGNITE-16611:
-------------------------------------
    Description: 
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 bare RocksDB instance.

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.

  was:
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.


> [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
>            Priority: Major
>              Labels: ignite-3
>
> 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 bare RocksDB instance.
> 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