146,552 research outputs found
Synchrony versus causality in distributed systems
Dieser Beitrag ist mit Zustimmung des Rechteinhabers aufgrund einer (DFG geförderten) Allianz- bzw. Nationallizenz frei zugänglich.This publication is with permission of the rights owner freely accessible due to an Alliance licence and a national licence (funded by the DFG, German Research Foundation) respectively.Given a synchronous system, we study the question whether – or, under which conditions – the behaviour of that system can be realized by a (non-trivially) distributed and hence asynchronous implementation. In this paper, we partially answer this question by examining the role of causality for the implementation of synchrony in two fundamental different formalisms of concurrency, Petri nets and the π-calculus. For both formalisms it turns out that each ‘good’ encoding of synchronous interactions using just asynchronous interactions introduces causal dependencies in the translation
Synchrony versus causality in distributed systems
Dieser Beitrag ist mit Zustimmung des Rechteinhabers aufgrund einer (DFG geförderten) Allianz- bzw. Nationallizenz frei zugänglich.This publication is with permission of the rights owner freely accessible due to an Alliance licence and a national licence (funded by the DFG, German Research Foundation) respectively.Given a synchronous system, we study the question whether – or, under which conditions – the behaviour of that system can be realized by a (non-trivially) distributed and hence asynchronous implementation. In this paper, we partially answer this question by examining the role of causality for the implementation of synchrony in two fundamental different formalisms of concurrency, Petri nets and the π-calculus. For both formalisms it turns out that each ‘good’ encoding of synchronous interactions using just asynchronous interactions introduces causal dependencies in the translation
Causality, Knowledge and Coordination in Distributed Systems
Effecting coordination across remote sites in a distributed system is an
essential part of distributed computing, and also an inherent challenge. In
1978, an analysis of communication in asynchronous systems was suggested by
Leslie Lamport. Lamport's analysis determines a notion of temporal precedence,
a sort of weak notion of time, which is otherwise missing in asynchronous
systems. This notion has been extensively utilized in various applications.
Yet the analysis is limited to systems that are asynchronous. In this thesis
we go beyond by investigating causality in synchronous systems. In such
systems, the boundaries of causal influence are not charted out exclusively by
message passing. Here time itself, passing at a uniform (or almost uniform)
rate for all processes, is also a medium by which causal influence may fan out.
This thesis studies, and characterizes, the combinations of time and message
passing that govern causal influence in synchronous systems.
It turns out that knowledge based analysis [FHMV] provides a well tailored
formal framework within which causal notions can be studied. As we show, the
formal notion of knowledge is highly appropriate for characterizing causal
influence in terms of information flow, broadening the analysis of Chandy and
Misra in [ChM].
We define several generic classes of coordination problems that pose various
temporal ordering requirements on the participating processes. These
coordination problems provide natural generalizations of real life
requirements. We then analyze the causal conditions that underlie suitable
solutions to these problems. The analysis is conducted in two stages: first,
the temporal ordering requirements are reduced to epistemic conditions. Then,
these epistemic conditions are characterized in terms of the causal
communication patterns that are necessary and sufficient to bring them about.Comment: PhD Dissertatio
Programming with process groups: Group and multicast semantics
Process groups are a natural tool for distributed programming and are increasingly important in distributed computing environments. Discussed here is a new architecture that arose from an effort to simplify Isis process group semantics. The findings include a refined notion of how the clients of a group should be treated, what the properties of a multicast primitive should be when systems contain large numbers of overlapping groups, and a new construct called the causality domain. A system based on this architecture is now being implemented in collaboration with the Chorus and Mach projects
Extending Provenance For Deep Diagnosis Of Distributed Systems
Diagnosing and repairing problems in complex distributed systems has always been challenging. A wide variety of problems can happen in distributed systems: routers can be misconfigured, nodes can be hacked, and the control software can have bugs. This is further complicated by the complexity and scale of today’s distributed systems. Provenance is an attractive way to diagnose faults in distributed systems, because it can track the causality from a symptom to a set of root causes. Prior work on network provenance has successfully applied provenance to distributed systems. However, they cannot explain problems beyond the presence of faulty events and offer limited help with finding repairs.
In this dissertation, we extend provenance to handle diagnostics problems that require deeper investigations. We propose three different extensions: negative provenance explains not just the presence but also the absence of events (such as missing packets); meta provenance can suggest repairs by tracking causality not only for data but also for code (such as bugs in control plane programs); temporal provenance tracks causality at the temporal level and aims at diagnosing timing-related faults (such as slow requests). Compared to classical network provenance, our approach tracks richer causality at runtime and applies more sophisticated reasoning and post-processing. We apply the above techniques to software-defined networking and the border gateway protocol. Evaluations with real world traffic and topology show that our systems can diagnose and repair practical problems, and that the runtime overhead as well as the query turnarounds are reasonable
Causality tracking in dynamic distributed systems
Tese de Doutoramento - Área do Conhecimento Tecnologias da ProgramaçãoA causalidade desempenha um papel central no tratamento de problemas importantes
de sistemas distribuídos, tais como na replicação de dados, na análise de
execuções, na comunicação em grupo e na determinação de estados globais. Por
forma a ser útil, a causalidade precisa de ser concretizada em mecanismos que
procedam ao seu registo.
Os mecanismos existentes, tais como os vectores versão e os relógios vectoriais,
assumem a existência de um mapeamento entre identificadores globalmente únicos
e contadores inteiros. Num sistema em que é conhecido o número de entidades, é
possível pré-configurar estes identificadores por forma a ocuparem posições distintas
num vector ou serem-lhe atribuídos nomes distintos. A gestão destas identidades
é bem mais problemática em ambientes dinâmicos, com grande número de
entidades e onde estas são permanentemente criadas e destruídas. Esta situação é
agravada na presença de partições de rede. As soluções actuais para o registo de
causalidade não se revelam apropriadas a estes cenários, cada vez mais relevantes.
Esta tese apresenta novos mecanismos de registo de causalidade que têm a propriedade
de poder ser usados em cenários com um número dinâmico de entidades.
Estes mecanismos permitem a criação descentralizada de entidades (processos ou
réplicas) sem requerer identificadores globais ou coordenação global para a sua
geração. Estes mecanismos apresentam codificações com tamanho variável, o que
permite uma adaptação automática ao número de entidades em jogo, crescendo e
colapsando de acordo com as necessidades.Causality plays a central role as a building block in solving important problems
in distributed systems, such as replication, debugging, group communication and
global snapshots. To be useful, causality must be realised by actual mechanisms
that can track it and encode it.
Existing causality tracking mechanisms, such as vector clocks and version vectors,
rely on mappings from globally unique identifiers to integer counters. In a
system with a well known set of entities these identifiers can be pre-configured
and given distinct positions in a vector or distinct names in a mapping. Identity
management is more problematic in dynamic systems, with a large and highly variable
number of entities, being worsened when network partitions occur. Present
solutions for causality tracking are not appropriate to these increasingly common
scenarios.
This thesis introduces novel causality tracking mechanisms that can be used in
scenarios with a dynamic number of entities. These allow completely decentralised
creation of entities (processes or replicas) with no need for global identifiers or
global coordination. These mechanisms have a variable size representation that
adapts automatically to the number of entities, growing or shrinking appropriately
- …