1,947 research outputs found

    Distributed stabilizing data structures

    Full text link
    Distributed algorithms aim to achieve better performance than sequential algorithms in terms of time complexity (or asymptotic time complexity) while keeping or lowering the memory requirement (space complexity) in a node. (In sequential algorithms, the memory requirement is the memory requirement of the algorithm itself.); Self-stabilizing distributed algorithms aim to achieve a comparable performance to non-stabilizing distributed algorithms when transient faults or arbitrary initialization cause the system to enter a state where a non-stabilizing algorithm cannot continue to properly perform its task; Transient faults can affect an existing data structure and alter its data content. As a result, the data structure may lose its properties, and the operations defined over the data structure will have unpredictable and undesirable results, making the data structure unusable; We present several self or snap-stabilizing algorithms for particular data structures; We propose an optimal self-stabilizing distributed algorithm for simultaneously activating non-adjacent processes on an oriented chain (Algorithm SSDS ). We use Algorithm SSDS to accomplish two tasks: local mutual exclusion and line sorting. We propose two uniform, self-stabilizing, deterministic protocols on oriented chains: a time and space optimal solution to the local mutual exclusion problem (Algorithm LMEC ), and a space and (asymptotic) time optimal solution to the distributed sorting problem (Algorithm SORTc ); We extend Algorithm SSDS to an asynchronous oriented ring with a distinguished node with some minor modifications, and we obtain general self-stabilization for simultaneously activated non-adjacent processes in an oriented ring with a distinguished process (Algorithm SSDSR ). We use Algorithm SSDSR to accomplish two tasks: local resource allocation and ring sorting. We propose two uniform, self-stabilizing, deterministic protocols on oriented rings: a time and space optimal solution to the local resource allocation problem (Algorithm LRAR ), and a space and (asymptotic) time optimal solution to the distributed sorting problem (Algorithm SORTr ); We extend Algorithm SSDS to an asynchronous rooted tree, and we obtain general self-stabilization for simultaneously activated non-adjacent processes in a rooted tree (Algorithm SSDST ). We then give two applications of Algorithm SSDST : a time and space optimal solution to the local mutual exclusion problem (Algorithm LMET ) and a space and (asymptotically) time optimal solution to the min heap problem (Algorithm HEAP ); In proving the time complexity of sorting, we introduce the notion of pseudo-time, similar to logical time introduced by Lamport; We present the first snap-stabilizing distributed binary search tree (BST) algorithm. The proposed algorithm uses a heap algorithm (Algorithm Heap) as a preprocessing step. This is also the first snap-stabilizing distributed solution to the heap problem

    HSkip+: A Self-Stabilizing Overlay Network for Nodes with Heterogeneous Bandwidths

    Full text link
    In this paper we present and analyze HSkip+, a self-stabilizing overlay network for nodes with arbitrary heterogeneous bandwidths. HSkip+ has the same topology as the Skip+ graph proposed by Jacob et al. [PODC 2009] but its self-stabilization mechanism significantly outperforms the self-stabilization mechanism proposed for Skip+. Also, the nodes are now ordered according to their bandwidths and not according to their identifiers. Various other solutions have already been proposed for overlay networks with heterogeneous bandwidths, but they are not self-stabilizing. In addition to HSkip+ being self-stabilizing, its performance is on par with the best previous bounds on the time and work for joining or leaving a network of peers of logarithmic diameter and degree and arbitrary bandwidths. Also, the dilation and congestion for routing messages is on par with the best previous bounds for such networks, so that HSkip+ combines the advantages of both worlds. Our theoretical investigations are backed by simulations demonstrating that HSkip+ is indeed performing much better than Skip+ and working correctly under high churn rates.Comment: This is a long version of a paper published by IEEE in the Proceedings of the 14-th IEEE International Conference on Peer-to-Peer Computin

    Engineering Resilient Collective Adaptive Systems by Self-Stabilisation

    Get PDF
    Collective adaptive systems are an emerging class of networked computational systems, particularly suited in application domains such as smart cities, complex sensor networks, and the Internet of Things. These systems tend to feature large scale, heterogeneity of communication model (including opportunistic peer-to-peer wireless interaction), and require inherent self-adaptiveness properties to address unforeseen changes in operating conditions. In this context, it is extremely difficult (if not seemingly intractable) to engineer reusable pieces of distributed behaviour so as to make them provably correct and smoothly composable. Building on the field calculus, a computational model (and associated toolchain) capturing the notion of aggregate network-level computation, we address this problem with an engineering methodology coupling formal theory and computer simulation. On the one hand, functional properties are addressed by identifying the largest-to-date field calculus fragment generating self-stabilising behaviour, guaranteed to eventually attain a correct and stable final state despite any transient perturbation in state or topology, and including highly reusable building blocks for information spreading, aggregation, and time evolution. On the other hand, dynamical properties are addressed by simulation, empirically evaluating the different performances that can be obtained by switching between implementations of building blocks with provably equivalent functional properties. Overall, our methodology sheds light on how to identify core building blocks of collective behaviour, and how to select implementations that improve system performance while leaving overall system function and resiliency properties unchanged.Comment: To appear on ACM Transactions on Modeling and Computer Simulatio
    corecore