[
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)