LineairDB: Transactional Key-Value Storage with Epoch-based Synchronization
Demands on the performance of database systems continue to increase. In state-of-the-art database systems, the storage engine is a major source of performance bottlenecks, and it is important to harness parallelism by avoiding mutual exlusion mechanisms such as locks. In this paper, we outline the d...
Gespeichert in:
Veröffentlicht in: | Computer Software 2024/01/25, Vol.41(1), pp.1_15-1_35 |
---|---|
Hauptverfasser: | , , |
Format: | Artikel |
Sprache: | jpn |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Demands on the performance of database systems continue to increase. In state-of-the-art database systems, the storage engine is a major source of performance bottlenecks, and it is important to harness parallelism by avoiding mutual exlusion mechanisms such as locks. In this paper, we outline the design of LineairDB, a transactional storage engine open-sourced by the authors. LineairDB employs epoch-based synchronization to all components, which harnesses a high degree of multicore parallelism in handling data structures. We describe how each component of LineairDB is optimized by epoch-based synchronization. Our experimental results show that the optimizations in LineairDB lead to about a 75x increase in throughput in YCSB benchmark. In addition, we implement LineairDB-storage-engine, which is a plugin for MySQL. It achieved up to 5x better throughput compared to InnoDB, which is MySQL's default storage engine. On the other hand, the approach of epoch-based synchronization affects both the performance characteristics and the consistency that the database provides to users. This paper also discusses these aspects. |
---|---|
ISSN: | 0289-6540 |
DOI: | 10.11309/jssst.41.1_15 |