GTX: A Write-Optimized Latch-free Graph Data System with Transactional Support
<|reference_start|>GTX: A Write-Optimized Latch-free Graph Data System with Transactional Support: This paper introduces GTX a standalone main-memory write-optimized graph system that specializes in structural and graph property updates while maintaining concurrent reads and graph analytics with snapshot isolation-level transactional concurrency. Recent graph libraries target efficient concurrent read and write support while guaranteeing transactional consistency. However, their performance suffers for updates with strong temporal locality over the same vertexes and edges due to vertex-centric lock contentions. GTX introduces a new delta-chain-centric concurrency-control protocol that eliminates traditional mutually exclusive latches. GTX resolves the conflicts caused by vertex-level locking, and adapts to real-life workloads while maintaining sequential access to the graph's adjacency lists storage. This combination of features has been demonstrated to provide good performance in graph analytical queries. GTX's transactions support fast group commit, novel write-write conflict prevention, and lazy garbage collection. Based on extensive experimental and comparative studies, in addition to maintaining competitive concurrent read and analytical performance, GTX demonstrates high throughput over state-of-the-art techniques when handling concurrent transaction+analytics workloads. For write-heavy transactional workloads, GTX performs up to 11x better than the best-performing state-of-the-art systems in transaction throughput. At the same time, GTX does not sacrifice the performance of read-heavy analytical workloads, and has competitive performance similar to state-of-the-art systems.<|reference_end|>
@article{zhou2024gtx:,
    title={GTX: A Write-Optimized Latch-free Graph Data System with Transactional
  Support},
    author={Libin Zhou, Yeasir Rayhan, Lu Xing, Walid. G. Aref},
    journal={arXiv preprint arXiv:2405.01418},
    year={2024},
    archivePrefix={arXiv},
    eprint={2405.01418},
    primaryClass={cs.DB}
}