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