<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>Benz, Samuel</dc:creator>
  <dc:date>2018-01-29</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">The rise of worldwide Internet-scale services demands large distributed systems. Indeed, when handling several millions  of users, it is common to operate thousands of servers spread across the globe. Here, replication plays a central role, as  it contributes to improve the user experience by hiding failures and by providing acceptable latency. In this thesis, we  claim that atomic multicast, with strong and well-defined properties, is the appropriate abstraction to efficiently design  and implement globally scalable distributed systems. Internet-scale services rely on data partitioning and replication to  provide scalable performance and high availability. Moreover, to reduce user-perceived response times and tolerate  disasters (i.e., the failure of a whole datacenter), services are increasingly becoming geographically distributed. Data  partitioning and replication, combined with local and geographical distribution, introduce daunting challenges, including  the need to carefully order requests among replicas and partitions. One way to tackle this problem is to use group  communication primitives that encapsulate order requirements. While replication is a common technique used to design  such reliable distributed systems, to cope with the requirements of modern cloud based ``always-on'' applications,  replication protocols must additionally allow for throughput scalability and dynamic reconfiguration, that is, on-demand  replacement or provisioning of system resources. We propose a dynamic atomic multicast protocol which fulfills these  requirements. It allows to dynamically add and remove resources to an online replicated state machine and to recover  crashed processes. Major efforts have been spent in recent years to improve the performance, scalability and reliability  of distributed systems. In order to hide the complexity of designing distributed applications, many proposals provide  efficient high-level communication abstractions. Since the implementation of a production-ready system based on this  abstraction is still a major task, we further propose to expose our protocol to developers in the form of distributed data  structures. B-trees for example, are commonly used in different kinds of applications, including database indexes or file  systems. Providing a distributed, fault-tolerant and scalable data structure would help developers to integrate their  applications in a distribution transparent manner. This work describes how to build reliable and scalable distributed  systems based on atomic multicast and demonstrates their capabilities by an implementation of a distributed ordered  map that supports dynamic re-partitioning and fast recovery. To substantiate our claim, we ported an existing SQL  database atop of our distributed lock-free data structure. Here, replication plays a central role, as it contributes to  improve the user experience by hiding failures and by providing acceptable latency. In this thesis, we claim that atomic  multicast, with strong and well-defined properties, is the appropriate abstraction to efficiently design and implement  globally scalable distributed systems. Internet-scale services rely on data partitioning and replication to provide scalable  performance and high availability. Moreover, to reduce user-perceived response times and tolerate disasters (i.e., the  failure of a whole datacenter), services are increasingly becoming geographically distributed. Data partitioning and  replication, combined with local and geographical distribution, introduce daunting challenges, including the need to  carefully order requests among replicas and partitions. One way to tackle this problem is to use group communication  primitives that encapsulate order requirements. While replication is a common technique used to design such reliable  distributed systems, to cope with the requirements of modern cloud based ``always-on'' applications, replication protocols  must additionally allow for throughput scalability and dynamic reconfiguration, that is, on-demand replacement or  provisioning of system resources. We propose a dynamic atomic multicast protocol which fulfills these requirements. It  allows to dynamically add and remove resources to an online replicated state machine and to recover crashed  processes. Major efforts have been spent in recent years to improve the performance, scalability and reliability of  distributed systems. In order to hide the complexity of designing distributed applications, many proposals provide efficient  high-level communication abstractions. Since the implementation of a production-ready system based on this abstraction  is still a major task, we further propose to expose our protocol to developers in the form of distributed data structures. B- trees for example, are commonly used in different kinds of applications, including database indexes or file systems.  Providing a distributed, fault-tolerant and scalable data structure would help developers to integrate their applications in a  distribution transparent manner. This work describes how to build reliable and scalable distributed systems based on  atomic multicast and demonstrates their capabilities by an implementation of a distributed ordered map that supports  dynamic re-partitioning and fast recovery. To substantiate our claim, we ported an existing SQL database atop of our  distributed lock-free data structure.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://n2t.net/ark:/12658/srd1318867</dc:identifier>
  <dc:identifier>https://susi.usi.ch/global/documents/318867</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318867/files/2018INFO003.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-117088</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318867</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">Atomic multicast</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Distributed systems</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Paxos</dc:subject>
  <dc:subject xmlns:ns4="xml" ns4:lang="en">Reliability</dc:subject>
  <dc:subject xmlns:ns5="xml" ns5:lang="en">Recovery</dc:subject>
  <dc:subject xmlns:ns6="xml" ns6:lang="en">Replication</dc:subject>
  <dc:subject xmlns:ns7="xml" ns7:lang="en">Fault-tolerance</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns8="xml" ns8:lang="en">Building global and scalable systems with atomic multicast</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
