146,552 research outputs found

    Synchrony versus causality in distributed systems

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore