Skip to main navigation Skip to search Skip to main content

High-throughput state-machine replication using software transactional memory

  • Wenbing Zhao
  • , William Yang
  • , Honglei Zhang
  • , Jack Yang
  • , Xiong Luo
  • , Yueqin Zhu
  • , Mary Yang
  • , Chaomin Luo
  • Cleveland State University
  • The University of Texas at Austin
  • Agilysys Inc.
  • Massachusetts General Hospital
  • University of Science and Technology Beijing
  • China Geological Survey
  • Joint Bioinformatics Program of University of Arkansas at Little Rock
  • University of Detroit Mercy

Research output: Contribution to journalArticlepeer-review

3 Scopus citations

Abstract

State-machine replication is a common way of constructing general purpose fault tolerance systems. To ensure replica consistency, requests must be executed sequentially according to some total order at all non-faulty replicas. Unfortunately, this could severely limit the system throughput. This issue has been partially addressed by identifying non-conflicting requests based on application semantics and executing these requests concurrently. However, identifying and tracking non-conflicting requests require intimate knowledge of application design and implementation, and a custom fault tolerance solution developed for one application cannot be easily adopted by other applications. Software transactional memory offers a new way of constructing concurrent programs. In this article, we present the mechanisms needed to retrofit existing concurrency control algorithms designed for software transactional memory for state-machine replication. The main benefit for using software transactional memory in state-machine replication is that general purpose concurrency control mechanisms can be designed without deep knowledge of application semantics. As such, new fault tolerance systems based on state-machine replications with excellent throughput can be easily designed and maintained. In this article, we introduce three different concurrency control mechanisms for state-machine replication using software transactional memory, namely, ordered strong strict two-phase locking, conventional timestamp-based multiversion concurrency control, and speculative timestamp-based multiversion concurrency control. Our experiments show that speculative timestamp-based multiversion concurrency control mechanism has the best performance in all types of workload, the conventional timestamp-based multiversion concurrency control offers the worst performance due to high abort rate in the presence of even moderate contention between transactions. The ordered strong strict two-phase locking mechanism offers the simplest solution with excellent performance in low contention workload, and fairly good performance in high contention workload.
Original languageEnglish
Pages (from-to)4379-4398
Number of pages20
JournalJournal of Supercomputing
Volume72
Issue number11
DOIs
StatePublished - Nov 1 2016

Keywords

  • Multiversion concurrency control
  • One-copy serializability
  • Ordered strong strict two-phase locking
  • Software transactional memory
  • State-machine replication

Cite this