666 research outputs found

    Virtual Central Control.

    Get PDF
    A distributed system is a set of cooperating computers (processes) communicating with each other to achieve a common goal. They are broadly classified as centralized and decentralised systems. In a centralized system, a single computer plays the role of central coordinator and controls all the system activities. Whereas in a decentralized system, all the cooperating processes have an equal role to play, therefore solutions to problems involve instructing all the processes and coordinating their actions. Although a centralized system facilitates program development, it has serious drawbacks. If the coordinator fails, the system effectively breaks down. Also, the coordinator can become a performance bottleneck. On the other hand, a decentralized system does not suffer from these shortcomings, but program development is more difficult. In this research, we develop a paradigm for a distributed system that provides the view of a centralized system even though the underlying system is decentralized. Special processes called agents reside on all participating computers. One of the agents acts as a leader and coordinates activities of other agents. Agents communicate through a fault-tolerant agent-to-agent protocol. The paradigm defines a one-shot computation, a construct that enables the expression of programs in a simulated centralized environment, thus making program development easier. Programs, written in terms of one-shot computations that are encapsulated in templates which hide all the lower level details from the programmer. We show that every computation can be expressed as a one-shot computation. The proposed paradigm has a high degree of fault-tolerance. It tolerates up to n1n-1 failures in a system of n processors. A prototype has been implemented using PVM

    Robust chat for airborne command and control

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, September 2003."August 22, 2003."Includes bibliographical references (p. 87-88).We present the design, implementation, and evaluation of a prototype robust textual chat application to be utilized in dynamic distributed environments such as the Multi-Sensor Command and Control Constellation (MC2C). The MC2C environment consists of a set of airborne and ground sites, each of which contains a cluster of clients. Intra-site communication is reliable and exhibits high performance, whereas the performance and reliability of inter-site communication is variable and unpredictable. The two primary goals of the chat application are to deliver messages to clients with low latency and a globally consistent ordering. Since these goals conflict, our protocols strike a balance by satisfying a new property that we call the Intermittent Global Order (IGO) property. A protocol satisfying the IGO property guarantees global order while network connectivity permits, and sacrifices global order for bounded message delivery latencies while maintaining an intuitive and well-defined ordering on the message delivery when critical network connections are lost. We implemented our protocols on a hierarchical system architecture that places a server at every MC2C site. We developed a test-bed that simulates four MC2C sites in order to test the prototype. Testing revealed that the various IGO protocols implemented in the prototype all achieve the goals of robust and efficient collaborative communication even in the face of frequent link outages, but differ in how each balances global order and latency.by Prasad Ramanan.M.Eng

    A Semantic Consistency Model to Reduce Coordination in Replicated Systems

    Get PDF
    Large-scale distributed applications need to be available and responsive to satisfy millions of users, which can be achieved by having data geo-replicated in multiple replicas. However, a partitioned system cannot sustain availability and consistency at fully. The usage of weak consistency models might lead to data integrity violations, triggered by problematic concurrent updates, such as selling twice the last ticket on a flight company service. To overcome possible conflicts, programmers might opt to apply strong consistency, which guarantees a total order between operations, while preserving data integrity. Nevertheless, the illusion of being a non-replicated system affects its availability. In contrast, weaker notions might be used, such as eventual consistency, that boosts responsiveness, as operations are executed directly at the source replica and their effects are propagated to remote replicas in the background. However, this approach might put data integrity at risk. Current protocols that preserve invariants rely on, at least, causal consistency, a consistency model that maintains causal dependencies between operations. In this dissertation, we propose a protocol that includes a semantic consistency model. This consistency model stands between eventual consistency and causal consistency. We guarantee better performance comparing with causal consistency, and ensure data integrity. Through semantic analysis, relying on the static analysis tool CISE3, we manage to limit the maximum number of dependencies that each operation will have. To support the protocol, we developed a communication algorithm in a cluster. Additionally, we present an architecture that uses Akka, an actor-based middleware in which actors communicate by exchanging messages. This architecture adopts the publish/subscribe pattern and includes data persistence. We also consider the stability of operations, as well as a dynamic cluster environment, ensuring the convergence of the replicated state. Finally, we perform an experimental evaluation regarding the performance of the algorithm using standard case studies. The evaluation confirms that by relying on semantic analysis, the system requires less coordination between the replicas than causal consistency, ensuring data integrity.Aplicações distribuídas em larga escala necessitam de estar disponíveis e de serem responsivas para satisfazer milhões de utilizadores, o que pode ser alcançado através da geo-replicação dos dados em múltiplas réplicas. No entanto, um sistema particionado não consegue garantir disponibilidade e consistência na sua totalidade. O uso de modelos de consistência fraca pode levar a violações da integridade dos dados, originadas por escritas concorrentes problemáticas. Para superar possíveis conflitos, os programadores podem optar por aplicar modelos de consistência forte, originando uma ordem total das operações, assegurando a integridade dos dados. Em contrapartida, podem ser utilizadas noções mais fracas, como a consistência eventual, que aumenta a capacidade de resposta, uma vez que as operações são executadas diretamente na réplica de origem e os seus efeitos são propagados para réplicas remotas. No entanto, esta abordagem pode colocar em risco a integridade dos dados. Os protocolos existentes que preservam as invariantes dependem, pelo menos, da consistência causal, um modelo de consistência que mantém as dependências causais entre operações. Nesta dissertação propomos um protocolo que inclui um modelo de consistência semântica. Este modelo situa-se entre a consistência eventual e a consistência causal. Garantimos um melhor desempenho em comparação com a consistência causal, e asseguramos a integridade dos dados. Através de uma análise semântica, obtida através da ferramenta de análise estática CISE3, conseguimos limitar o número de dependências de cada operação. Para suportar o protocolo, desenvolvemos um algoritmo de comunicação entre um aglomerado de réplicas. Adicionalmente, apresentamos uma arquitetura que utiliza Akka, um middleware baseado em atores que trocam mensagens entre si. Esta arquitetura utiliza o padrão publish/subscribe e inclui a persistência dos dados. Consideramos também a estabilidade das operações, bem como um ambiente dinâmico de réplicas, assegurando a convergência do estado. Por último, apresentamos a avaliação do desempenho do algoritmo desenvolvido, que confirma que a análise semântica das operações requer menos coordenação entre as réplicas que a consistência causal
    corecore