Back to articles
Improving my MVCC Transactional Map

Improving my MVCC Transactional Map

via Dev.toKush V

Introduction This post walks through my performance journey of an MVCC transactional map I've been building in Java, from a few thousand ops/s to a few million. It's mostly numbers and profiling observations, so if that's not your thing, fair warning. The Journey Initially my MVCC txMap had good read numbers for thrpt and decent write numbers, though the error margins for the write numbers were bad, so I decided to investigate. While investigating, I encountered an issue. Also, just a quick note before we continue that ActiveTransactions isn't my garbage collector, rather it just keeps tab on all active transactions at the moment. //A map keeping track of all active transactions ActiveTransactions activeTxns = mvccMap . activeTransactions . copy (); //Copied the entire map on active txns, could be thousands long minVisibleEpoch = activeTxns . findMinVisibleEpoch (); versionChain . removeUnreachableVersions ( minVisibleEpoch ); // ActiveTransactions method call long findMinActiveEpoch (

Continue reading on Dev.to

Opens in a new tab

Read Full Article
2 views

Related Articles