Programming Model and Protocols for Reconfigurable Distributed Systems

Distributed systems are everywhere. From large datacenters to mobile devices, an ever richer assortment of applications and services relies on distributed systems, infrastructure, and protocols. Despite their ubiquity, testing and debugging distributed systems remains notoriously hard. Moreover, asi...

Full description

Bibliographic Details
Main Author: Arad, Cosmin
Format: Doctoral Thesis
Language:English
Published: SICS 2013
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:ri:diva-24202
http://nbn-resolving.de/urn:isbn:978-91-7501-694-8
id ndltd-UPSALLA1-oai-DiVA.org-ri-24202
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-ri-242022016-11-01T05:07:10ZProgramming Model and Protocols for Reconfigurable Distributed SystemsengArad, CosminSICSSchool of Information and Communication TechnologyStockholm, Sweden : Universitetsservice US-AB2013distributed systemsprogramming modelmessage-passing concurrencynested hierarchical compositionreactive componentssoftware architecturedynamic reconfigurationmulti-corediscrete-event simulationpeer-to-peertestingdebuggingdistributed key-value storesdata replicationconsistencylinearizabilitynetwork partition toleranceconsistent hashingself-organizationscalabilityelasticityfault toleranceconsistent quorumsDistributed systems are everywhere. From large datacenters to mobile devices, an ever richer assortment of applications and services relies on distributed systems, infrastructure, and protocols. Despite their ubiquity, testing and debugging distributed systems remains notoriously hard. Moreover, aside from inherent design challenges posed by partial failure, concurrency, or asynchrony, there remain significant challenges in the implementation of distributed systems. These programming challenges stem from the increasing complexity of the concurrent activities and reactive behaviors in a distributed system on the one hand, and the need to effectively leverage the parallelism offered by modern multi-core hardware, on the other hand. This thesis contributes Kompics, a programming model designed to alleviate some of these challenges. Kompics is a component model and programming framework for building distributed systems by composing message-passing concurrent components. Systems built with Kompics leverage multi-core machines out of the box, and they can be dynamically reconfigured to support hot software upgrades. A simulation framework enables deterministic execution replay for debugging, testing, and reproducible behavior evaluation for large-scale Kompics distributed systems. The same system code is used for both simulation and production deployment, greatly simplifying the system development, testing, and debugging cycle. We highlight the architectural patterns and abstractions facilitated by Kompics through a case study of a non-trivial distributed key-value storage system. CATS is a scalable, fault-tolerant, elastic, and self-managing key-value store which trades off service availability for guarantees of atomic data consistency and tolerance to network partitions. We present the composition architecture for the numerous protocols employed by the CATS system, as well as our methodology for testing the correctness of key CATS algorithms using the Kompics simulation framework. Results from a comprehensive performance evaluation attest that CATS achieves its claimed properties and delivers a level of performance competitive with similar systems which provide only weaker consistency guarantees. More importantly, this testifies that Kompics admits efficient system implementations. Its use as a teaching framework as well as its use for rapid prototyping, development, and evaluation of a myriad of scalable distributed systems, both within and outside our research group, confirm the practicality of Kompics. KompicsCATSRESTDoctoral thesis, monographinfo:eu-repo/semantics/doctoralThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:ri:diva-24202urn:isbn:978-91-7501-694-8SICS dissertation series, 1101-1335application/pdfinfo:eu-repo/semantics/openAccessapplication/x-gzipinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Doctoral Thesis
sources NDLTD
topic distributed systems
programming model
message-passing concurrency
nested hierarchical composition
reactive components
software architecture
dynamic reconfiguration
multi-core
discrete-event simulation
peer-to-peer
testing
debugging
distributed key-value stores
data replication
consistency
linearizability
network partition tolerance
consistent hashing
self-organization
scalability
elasticity
fault tolerance
consistent quorums
spellingShingle distributed systems
programming model
message-passing concurrency
nested hierarchical composition
reactive components
software architecture
dynamic reconfiguration
multi-core
discrete-event simulation
peer-to-peer
testing
debugging
distributed key-value stores
data replication
consistency
linearizability
network partition tolerance
consistent hashing
self-organization
scalability
elasticity
fault tolerance
consistent quorums
Arad, Cosmin
Programming Model and Protocols for Reconfigurable Distributed Systems
description Distributed systems are everywhere. From large datacenters to mobile devices, an ever richer assortment of applications and services relies on distributed systems, infrastructure, and protocols. Despite their ubiquity, testing and debugging distributed systems remains notoriously hard. Moreover, aside from inherent design challenges posed by partial failure, concurrency, or asynchrony, there remain significant challenges in the implementation of distributed systems. These programming challenges stem from the increasing complexity of the concurrent activities and reactive behaviors in a distributed system on the one hand, and the need to effectively leverage the parallelism offered by modern multi-core hardware, on the other hand. This thesis contributes Kompics, a programming model designed to alleviate some of these challenges. Kompics is a component model and programming framework for building distributed systems by composing message-passing concurrent components. Systems built with Kompics leverage multi-core machines out of the box, and they can be dynamically reconfigured to support hot software upgrades. A simulation framework enables deterministic execution replay for debugging, testing, and reproducible behavior evaluation for large-scale Kompics distributed systems. The same system code is used for both simulation and production deployment, greatly simplifying the system development, testing, and debugging cycle. We highlight the architectural patterns and abstractions facilitated by Kompics through a case study of a non-trivial distributed key-value storage system. CATS is a scalable, fault-tolerant, elastic, and self-managing key-value store which trades off service availability for guarantees of atomic data consistency and tolerance to network partitions. We present the composition architecture for the numerous protocols employed by the CATS system, as well as our methodology for testing the correctness of key CATS algorithms using the Kompics simulation framework. Results from a comprehensive performance evaluation attest that CATS achieves its claimed properties and delivers a level of performance competitive with similar systems which provide only weaker consistency guarantees. More importantly, this testifies that Kompics admits efficient system implementations. Its use as a teaching framework as well as its use for rapid prototyping, development, and evaluation of a myriad of scalable distributed systems, both within and outside our research group, confirm the practicality of Kompics. === Kompics === CATS === REST
author Arad, Cosmin
author_facet Arad, Cosmin
author_sort Arad, Cosmin
title Programming Model and Protocols for Reconfigurable Distributed Systems
title_short Programming Model and Protocols for Reconfigurable Distributed Systems
title_full Programming Model and Protocols for Reconfigurable Distributed Systems
title_fullStr Programming Model and Protocols for Reconfigurable Distributed Systems
title_full_unstemmed Programming Model and Protocols for Reconfigurable Distributed Systems
title_sort programming model and protocols for reconfigurable distributed systems
publisher SICS
publishDate 2013
url http://urn.kb.se/resolve?urn=urn:nbn:se:ri:diva-24202
http://nbn-resolving.de/urn:isbn:978-91-7501-694-8
work_keys_str_mv AT aradcosmin programmingmodelandprotocolsforreconfigurabledistributedsystems
_version_ 1718391193280184320