DTranx: A SEDA-based Distributed and Transactional Key Value Store with Persistent Memory Log
Current distributed key value stores achieve scalability by trading off consistency. As persistent memory technologies evolve tremendously, it is not necessary to sacrifice consistency for performance. This paper proposes DTranx, a distributed key value store based on a persistent memory aware log. DTranx integrates a state transition based garbage collection mechanism in the log design to effectively and efficiently reclaim old logs. In addition, DTranx adopts the SEDA architecture to exploit higher concurrency in multi-core environments and employs the optimal core binding strategy to minimize context switch overhead. Moreover, we customize a hybrid commit protocol that combines optimistic concurrency control and two-phase commit to reduce critical section of distributed locking and introduce a locking mechanism to avoid deadlocks and livelocks. In our evaluations, DTranx reaches 514.11k transactions per second with 36 servers and 95% read workloads. The persistent memory aware log is 30 times faster than the SSD based system. And, our state transition based garbage collection mechanism is efficient and effective. It does not affect normal transactions and log space usage is steadily low.
READ FULL TEXT