Treffer: Reliable Synchronization in Multithreaded Servers

Title:
Reliable Synchronization in Multithreaded Servers
Authors:
Publisher Information:
Department of Computer Science, Columbia University
Publication Year:
2017
Collection:
Columbia University: Academic Commons
Document Type:
Dissertation thesis
Language:
English
DOI:
10.7916/D8MS4578
Accession Number:
edsbas.40358A15
Database:
BASE

Weitere Informationen

State machine replication (SMR) leverages distributed consensus protocols such as PAXOS to keep multiple replicas of a program consistent in face of replica failures or network partitions. This fault tolerance is enticing on implementing a principled SMR system that replicates general programs, especially server programs that demand high availability. Unfortunately, SMR assumes deterministic execution, but most server programs are multithreaded and thus non-deterministic. Moreover, existing SMR systems provide narrow state machine interfaces to suit specific programs, and it can be quite strenuous and error-prone to orchestrate a general program into these interfaces This paper presents CRANE, an SMR system that trans- parently replicates general server programs. CRANE achieves distributed consensus on the socket API, a common interface to almost all server programs. It leverages deterministic multithreading (specifically, our prior system PARROT) to make multithreaded replicas deterministic. It uses a new technique we call time bubbling to efficiently tackle a difficult challenge of non-deterministic network input timing. Evaluation on five widely used server programs (e.g., Apache, ClamAV, and MySQL) shows that CRANE is easy to use, has moderate overhead, and is robust.