<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>Soulé, Robert</dc:contributor>
  <dc:contributor>Pedone, Fernando</dc:contributor>
  <dc:creator>Dang, Huynh Tu</dc:creator>
  <dc:date>2019-01-31</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">Services rely on replication mechanisms to be available at all time. The service demanding high availability is  replicated on a set of machines called replicas. To maintain the consistency of replicas, a consensus protocol  such as Paxos or Raft is used to synchronize the replicas' state. As a result, failures of a minority of replicas  will not affect the service as other non-faulty replicas continue serving requests. A consensus protocol is a  procedure to achieve an agreement among processors in a distributed system involving unreliable  processors. Unfortunately, achieving such an agreement involves extra processing on every request,  imposing a substantial performance degradation. Consequently, performance has long been a concern for  consensus protocols. Although many efforts have been made to improve consensus performance, it continues  to be an important problem for researchers. This dissertation presents a novel approach to improving  consensus performance. Essentially, it exploits the programmability of a new breed of network devices to  accelerate consensus protocols that traditionally run on commodity servers. The benefits of using  programmable network devices to run consensus protocols are twofold: The network switches process  packets faster than commodity servers and consensus messages travel fewer hops in the network. It means  that the system throughput is increased and the latency of requests is reduced. The evaluation of our  network-accelerated consensus approach shows promising results. Individual components of our FPGA- based and switch-based consensus implementations can process 10 million and 2.5 billion consensus  messages per second, respectively. Our FPGA-based system as a whole delivers 4.3 times performance of a  traditional software consensus implementation. The latency is also better for our system and is only one third  of the latency of the software consensus implementation when both systems are under half of their maximum  throughputs. In order to drive even higher performance, we apply a partition mechanism to our switch-based  system, leading to 11 times better throughput and 5 times better latency. By dynamically switching between  software-based and network-based implementations, our consensus systems not only improve performance  but also use energy more efficiently. Encouraged by those benefits, we developed a fault-tolerant non-volatile  memory system. A prototype using software memory controller demonstrated reasonable overhead over local  memory access, showing great promise as scalable main memory. Our network-based consensus approach  would have a great impact in data centers. It not only improves performance of replication mechanisms which  relied on consensus, but also enhances performance of services built on top of those replication mechanisms.  Our approach also motivates others to move new functionalities into the network, such as, key-value store  and stream processing. We expect that in the near future, applications that typically run on traditional servers  will be folded into networks for performance.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://susi.usi.ch/global/documents/319043</dc:identifier>
  <dc:identifier>https://n2t.net/ark:/12658/srd1319043</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/319043/files/2019INFO003.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-118168</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1319043</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">Consensus</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Distributed systems</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Programmable network</dc:subject>
  <dc:subject xmlns:ns4="xml" ns4:lang="en">Software-defined networking</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns5="xml" ns5:lang="en">Consensus protocols exploiting network programmability</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
