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

Alexander Lapin updated IGNITE-18767:
-------------------------------------
    Epic Link: IGNITE-21174

> Reuse deleted rowIds and version chains
> ---------------------------------------
>
>                 Key: IGNITE-18767
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18767
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Chudov
>            Assignee: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> New RowId is generated every time when row insert happens. Old rowIds point 
> to tombstones and are cleared only on vacuum. This leads to the garbage 
> stockpiling in index storages and version chains, necessity for scanning 
> multiple rows even for unique indexes and possibility of having multiple 
> write intents for single key within one transaction. We can reuse tombstone 
> rows for inserts.
> *Definition of done*
> New rowIds are generated only for new rows when there are no tombstones to 
> reuse.
> *Implementation notes*
> For tx rollbacks, we should also remove index entries for write intents that 
> are to be aborted, but only in case when version chain's tail is write intent 
> (i.e. in case of abortion of this write intent there will be no entry in 
> versioned storage on which the index entry could point).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to