3 research outputs found

    Efficient Timestamps for Capturing Causality

    Full text link
    Consider an asynchronous system consisting of processes that communicate via message-passing. The processes communicate over a potentially {\em incomplete} communication network consisting of reliable bidirectional communication channels. Thus, not every pair of processes is necessarily able to communicate with each other directly. % For instance, when the communication network is a {\em star} graph, there is a {\em central} process % that can communicate with all the remaining processes (which are called {\em radial} processes), % but the radial processes cannot communicate with each other directly. The goal of the algorithms discussed in this paper is to assign timestamps to the events at all the processes such that (a) distinct events are assigned distinct timestamps, and (b) the happened-before relationship between the events can be inferred from the timestamps. We consider three types of algorithms for assigning timestamps to events: (i) Online algorithms that must (greedily) assign a timestamp to each event when the event occurs. (ii) Offline algorithms that assign timestamps to event after a finite execution is complete. (iii) Inline algorithms that assign a timestamp to each event when it occurs, but may modify some elements of a timestamp again at a later time. For specific classes of graphs, particularly {\em star} graphs and graphs with connectivity ≥1\geq 1, the paper presents bounds on the length of vector timestamps assigned by an {\em online} algorithm. The paper then presents an {\em inline} algorithm, which typically assigns substantially smaller timestamps than the optimal-length {\em online} vector timestamps. In particular, the inline algorithm assigns timestamp in the form of a tuple containing 2c+22c+2 integer elements, where cc is the size of the vertex cover for the underlying communication graph

    Timestamping Messages in Synchronous Computations

    No full text
    computations is a fundamental problem with applications in distributed monitoring systems and faulttolerance. Fidge and Mattern's vector clocks capture the order relationship with vectors of size N in a system with N processes. Since many distributed applications use synchronous messages, it is natural to ask if the overhead can be reduced for these applications. In this paper, we present a new method of timestamping messages and events in synchronous computations that capture the order relationship with vectors of size less than or equal to the size of the vertex cover of the communication topology of the system. Our method is fundamentally different from that of Fidge and Mattern's technique. The timestamps in our method do not use one component per process but still guarantee that the order relationship is captured accurately. Our algorithm is online and only requires piggybacking of timestamps on program messages. It is applicable to all programs that either use programming languages which use synchronous communication such as CSP, or use synchronous remote procedure calls

    Timestamping Messages in Synchronous Computations

    No full text
    Abstract Determining order relationship between events in dis-tributed computations is a fundamental problem with applications in distributed monitoring systems and fault-tolerance. Fidge and Mattern's vector clocks capture the order relationship with vectors of size N in a system with N processes. Since many distributed applications use syn-chronous messages, it is natural to ask if the overhead can be reduced for these applications. In this paper, we presenta new method of timestamping messages and events in synchronous computations that capture the order relationshipwith vectors of size less than or equal to the size of the vertex cover of the communication topology of the system. Ourmethod is fundamentally different from that of Fidge and Mattern's technique. The timestamps in our method do notuse one component per process but still guarantee that the order relationship is captured accurately. Our algorithmis online and only requires piggybacking of timestamps on program messages. It is applicable to all programs that ei-ther use programming languages which use synchronous communication such as CSP, or use synchronous remoteprocedure calls. 1
    corecore