<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:contributor>Pedone, Fernando</dc:contributor>
  <dc:creator>Jalili Marandi, Parisa</dc:creator>
  <dc:date>2014-09-08</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">Replication, a common approach to protecting applications against failures, refers to maintaining several copies of a service  on independent machines (replicas). Unlike a stand-alone service, a replicated service remains available to its clients  despite the failure of some of its copies. Consistency among replicas is an immediate concern raised by replication. In effect,  an important factor for providing the illusion of an uninterrupted service to clients is to preserve consistency among the  multiple copies. State-machine replication is a popular replication technique that ensures consistency by ordering client  requests and making all the replicas execute them deterministically and sequentially. The overhead of ordering the requests,  and the sequentiality of request execution, the two essential requirements in realizing state-machine replication, are also the  two major obstacles that prevent the performance of state-machine replication from scaling. In this thesis we concentrate on  the performance of state-machine replication and enhance it by overcoming the two aforementioned bottlenecks, the  overhead of ordering and the overhead of sequentially executing commands. To realize a truly scalable system, one must  iteratively examine and analyze all the layers and components of a system and avoid or eliminate potential performance  obstructions and congestion points. In this dissertation, we iterate between optimizing the ordering of requests and the  strategies of replicas at request execution, in order to stretch the performance boundaries of state-machine replication. To  eliminate the negative implications of the ordering layer on performance, we devise and implement several novel and highly  efficient ordering protocols. Our proposals are based on practical observations we make after closely assessing and  identifying the shortcomings of existing approaches. Communication is one of the most important components of any  distributed system and thus selecting efficient communication patterns is a must in designing scalable systems. We base our  protocols on the most suitable communication patterns and extend their design with additional features that altogether  realize our protocol's high efficiency. The outcome of this phase is the design and implementation of the Ring Paxos family  of protocols. According to our evaluations these protocols are highly scalable and efficient. We then assess the performance  ramifications of sequential execution of requests on the replicas of state-machine replication. We use some known  techniques such as state-partitioning and speculative execution, and thoroughly examine their advantages when combined  with our ordering protocols. We then exploit the features of multicore hardware and propose our final solution as a  parallelized form of state-machine replication, built on top of Ring Paxos protocols, that is capable of accomplishing  significantly high performance. Given the popularity of state-machine replication in designing fault-tolerant systems, we hope  this thesis provides useful and practical guidelines for the enhancement of the existing and the design of future fault-tolerant  systems that share similar performance goals.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://susi.usi.ch/global/documents/318541</dc:identifier>
  <dc:identifier>https://n2t.net/ark:/12658/srd1318541</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318541/files/2014INFO006.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-113210</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318541</dc:relation>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:rights>License undefined</dc:rights>
  <dc:subject xmlns:ns1="xml" ns1:lang="en">Distributed systems</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">State-machine replication</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Fault tolerance</dc:subject>
  <dc:subject xmlns:ns4="xml" ns4:lang="en">High performance</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns5="xml" ns5:lang="en">High-performance state-machine replication</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
