[ https://issues.apache.org/jira/browse/IGNITE-10729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Seliverstov updated IGNITE-10729: -------------------------------------- Summary: MVCC TX: Improve VAC using visibility maps (was: MVCC TX: Improve VAC) > MVCC TX: Improve VAC using visibility maps > ------------------------------------------ > > Key: IGNITE-10729 > URL: https://issues.apache.org/jira/browse/IGNITE-10729 > Project: Ignite > Issue Type: Improvement > Components: mvcc > Reporter: Igor Seliverstov > Priority: Major > > 1) vacuum doesn't have change set, this means it travers all data to find > invisible entries; hanse it breaks read statistics and make all data set > "hot" - we should travers data entries instead, and only those entries, which > was updated (linked to newer versions), moreover, vacuum should travers only > those data pages, which were updated after last successful vacuum (at least > one entry on the data page was linked to a never one) > 2) vacuum travers over partitions instead of data entries, so, there possible > some races like: reader checks an entry; updater removes this entry from > partition; vacuum doesn't see the entry and clean TxLog -> reader cannot > check the entry state with TxLog and gets an exception. This race prevents an > optimization when all entries, older than last successful vacuum version, are > considered as COMMITTED (see previous suggestion) > We need to implement a special structure like visibility maps in PG to > iterate on updated data pages only and do not use cache data tree. -- This message was sent by Atlassian JIRA (v7.6.3#76005)