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

Vladimir Ozerov closed IGNITE-9590.
-----------------------------------

> MVCC: Cleanup old rows in the vacuum thread.
> --------------------------------------------
>
>                 Key: IGNITE-9590
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9590
>             Project: Ignite
>          Issue Type: Improvement
>          Components: mvcc
>            Reporter: Roman Kondakov
>            Priority: Major
>              Labels: performance
>
> When updating writer thread should iterate over the set of the last versions 
> in order to find an appropriate version for its MVCC snapshot. During this 
> iteration it collects invisible to anybody versions (their xid_max version is 
> less than cleanup). When all outdated versions found, writer thread cleanups 
> these rows - removes it from indexes and from pagestore.
> It would be more efficient if writer thread does not cleanup old rows by 
> itself, but rather delegate it to vacuum workers: instead of cleaning just 
> put it to cleanup queue. 
> in case of significant backpressure during active updates, when cleanup 
> workers can't keep up with removing outdated rows and cleanup queue is too 
> big, writer threads can cleanup this rows by itself to prevent memory and 
> performance problems.
> Upd: Also we can acquire checkpointReadLock for a fix-sized batch of cleaning 
> versions Vacuum.cleanup() rather than for every single remove or rather than 
> removing all outdated version at once. See TxLog.removeUntil() method.



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

Reply via email to