000170480 001__ 170480
000170480 005__ 20190316235233.0
000170480 037__ $$aREP_WORK
000170480 245__ $$aAchieving high-throughput State Machine Replication in multi-core systems
000170480 269__ $$a2011
000170480 260__ $$c2011
000170480 300__ $$a14
000170480 336__ $$aReports
000170480 520__ $$aState machine replication is becoming an increasingly popular technique among online services to ensure fault-tolerance using commodity hardware. This has led to a renewed interest in its throughput, as these services have typically a large number of users. Recent work has shown how to improve the throughput of the replication protocol, using techniques like Ring-topologies, IP multicast, and rotating leaders. When deployed in modern fast networks, the resulting systems achieve unprecedented levels of throughput. But these systems are increasingly becoming limited by the CPU of the replicas, especially with small client requests. The problem is not lack of performance of the CPUs, but instead the inability of typical implementations to effectively use the multiple cores of modern multi-core CPUs. In this work, we show how to architect a replicated state machine whose performance scales with the number of cores in the nodes. We do so by applying several good practices of concurrent programming to the specific case of state machine replication, including staged execution, workload partitioning, actors, and non-blocking data structures. We describe and test a Java prototype of our architecture, based on the Paxos protocol. With a workload consisting of small requests, we achieve a 6 times improvement in throughput using 8 cores. More generally, in all our experiments we have consistently reached the limits of network subsystem by using up to 12 cores, and do not observe any degradation when using up to 24 cores. Furthermore, the profiling results of our implementation show that even at peak throughput contention between threads is minimal, suggesting that the throughput would continue scaling given a faster network.
000170480 6531_ $$aPaxos
000170480 6531_ $$aMulti-core
000170480 6531_ $$aState Machine Replication
000170480 6531_ $$aScalability
000170480 6531_ $$aMultithreading
000170480 700__ $$aSantos, Nuno
000170480 700__ $$g106377$$aSchiper, André$$0241767
000170480 8564_ $$uhttps://infoscience.epfl.ch/record/170480/files/santos11%20Paxos%20Multicore%20-%20TR.pdf$$zn/a$$s533877$$yn/a
000170480 909C0 $$xU10411$$0252206$$pLSR
000170480 909CO $$qGLOBAL_SET$$pIC$$ooai:infoscience.tind.io:170480$$preport
000170480 917Z8 $$x175974
000170480 937__ $$aEPFL-REPORT-170480
000170480 973__ $$sPUBLISHED$$aEPFL
000170480 980__ $$aREPORT