Enable Concurrent Byzantine Fault Tolerance Computing with Software Transactional Memory

Document Type

Conference Proceeding

Publication Date


Publication Title

Advanced Software Engineering & Its Applications (ASEA), 2015 8th International Conference on


Byzantine fault tolerance typically is achieved via state-machine replication, which requires the execution of all requests at the server replicas sequentially in a total order. This could severely limit the system throughput. We have seen tremendous efforts on the partial removal of the constraint on the sequential execution of all requests. Most of them rely on using application semantics to develop customized replication algorithms that could identify independent requests and execute them in parallel. In this paper, we describe concurrency control mechanisms for Byzantine fault tolerance systems using software transactional memory. This is an attractive approach to increasing the system throughput because no application-specific rules are required to determine whether or not two requests are conflicting. We present mechanisms for two common types of software transactional memory implementations, one based on transaction logs with two-phase locking, and the other based on multiversion concurrency control. We show that standard concurrency control mechanisms designed for these types cannot be used directly to ensure one-copy serializability, and introduce our solutions.