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

Vladimir Ozerov updated IGNITE-10729:
-------------------------------------
    Issue Type: Task  (was: Improvement)

> MVCC TX: Improve VAC using visibility maps
> ------------------------------------------
>
>                 Key: IGNITE-10729
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10729
>             Project: Ignite
>          Issue Type: Task
>          Components: mvcc
>            Reporter: Igor Seliverstov
>            Priority: Major
>              Labels: mvcc_performance
>
> Currently we have several issues:
> 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) - this can be easily 
> done by just having a special bit at the data page, so - any update resets 
> this bit, vacuum travers only data pages with zero value bit and sets it to 1 
> after processing.
> 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 reduce 
> examined pages amount, iterate over updated data pages only and do not use 
> cache data tree.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to