235 research outputs found
Update Consistency for Wait-free Concurrent Objects
In large scale systems such as the Internet, replicating data is an essential
feature in order to provide availability and fault-tolerance. Attiya and Welch
proved that using strong consistency criteria such as atomicity is costly as
each operation may need an execution time linear with the latency of the
communication network. Weaker consistency criteria like causal consistency and
PRAM consistency do not ensure convergence. The different replicas are not
guaranteed to converge towards a unique state. Eventual consistency guarantees
that all replicas eventually converge when the participants stop updating.
However, it fails to fully specify the semantics of the operations on shared
objects and requires additional non-intuitive and error-prone distributed
specification techniques. This paper introduces and formalizes a new
consistency criterion, called update consistency, that requires the state of a
replicated object to be consistent with a linearization of all the updates. In
other words, whereas atomicity imposes a linearization of all of the
operations, this criterion imposes this only on updates. Consequently some read
operations may return out-dated values. Update consistency is stronger than
eventual consistency, so we can replace eventually consistent objects with
update consistent ones in any program. Finally, we prove that update
consistency is universal, in the sense that any object can be implemented under
this criterion in a distributed system where any number of nodes may crash.Comment: appears in International Parallel and Distributed Processing
Symposium, May 2015, Hyderabad, Indi
Brief Announcement: Update Consistency in Partitionable Systems
Data replication is essential to ensure reliability, availability and
fault-tolerance of massive distributed applications over large scale systems
such as the Internet. However, these systems are prone to partitioning, which
by Brewer's CAP theorem [1] makes it impossible to use a strong consistency
criterion like atomicity. Eventual consistency [2] guaranties that all replicas
eventually converge to a common state when the participants stop updating.
However, it fails to fully specify shared objects and requires additional
non-intuitive and error-prone distributed specification techniques, that must
take into account all possible concurrent histories of updates to specify this
common state [3]. This approach, that can lead to specifications as complicated
as the implementations themselves, is limited by a more serious issue. The
concurrent specification of objects uses the notion of concurrent events. In
message-passing systems, two events are concurrent if they are enforced by
different processes and each process enforced its event before it received the
notification message from the other process. In other words, the notion of
concurrency depends on the implementation of the object, not on its
specification. Consequently, the final user may not know if two events are
concurrent without explicitly tracking the messages exchanged by the processes.
A specification should be independent of the system on which it is implemented.
We believe that an object should be totally specified by two facets: its
abstract data type, that characterizes its sequential executions, and a
consistency criterion, that defines how it is supposed to behave in a
distributed environment. Not only sequential specification helps repeal the
problem of intention, it also allows to use the well studied and understood
notions of languages and automata. This makes possible to apply all the tools
developed for sequential systems, from their simple definition using structures
and classes to the most advanced techniques like model checking and formal
verification. Eventual consistency (EC) imposes no constraint on the convergent
state, that very few depends on the sequential specification. For example, an
implementation that ignores all the updates is eventually consistent, as all
replicas converge to the initial state. We propose a new consistency criterion,
update consistency (UC), in which the convergent state must be obtained by a
total ordering of the updates, that contains the sequential order of eachComment: in DISC14 - 28th International Symposium on Distributed Computing,
Oct 2014, Austin, United State
Causal Consistency: Beyond Memory
In distributed systems where strong consistency is costly when not
impossible, causal consistency provides a valuable abstraction to represent
program executions as partial orders. In addition to the sequential program
order of each computing entity, causal order also contains the semantic links
between the events that affect the shared objects -- messages emission and
reception in a communication channel , reads and writes on a shared register.
Usual approaches based on semantic links are very difficult to adapt to other
data types such as queues or counters because they require a specific analysis
of causal dependencies for each data type. This paper presents a new approach
to define causal consistency for any abstract data type based on sequential
specifications. It explores, formalizes and studies the differences between
three variations of causal consistency and highlights them in the light of
PRAM, eventual consistency and sequential consistency: weak causal consistency,
that captures the notion of causality preservation when focusing on convergence
; causal convergence that mixes weak causal consistency and convergence; and
causal consistency, that coincides with causal memory when applied to shared
memory.Comment: 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel
Programming, Mar 2016, Barcelone, Spai
Back in Time Petri Nets
11th Int. Conf. on Formal Modeling and Analysis of Timed Systems (FORMATS'13) July 2013 Buenos AiresInternational audienceThe time progress assumption is at the core of the semantics of real-time formalisms. It is also the major obstacle to the development of partial-order techniques for real-time distributed systems since the events are ordered both by causality and by their occurrence in time. Anyway, extended free choice safe time Petri nets (TPNs) were already identi ed as a class where partial order semantics behaves well. We show that, for this class, the time progress assumption can even be dropped (time may go back in case of concurrency), which establishes a nice relation between partial-order semantics and time progress assumption
Synthesis of Distributed Testers from True-concurrency Models of Reactive Systems
Automatic synthesis of test cases for conformance testing has been principall- y developed with the objective of generating sequential test cases. In the distributed system context, it is worth extending the synthesis techniques to the generation of multiple testers. We base our work on our experience in using model-checking techniques, as successfully implemented in the TGV tool. Continuing the works of A. Ulrich and H. König, we propose to use a true-concurrency model based on graph unfolding. The article presents the principles of a complete chain of synthesis, starting from the definition of test purposes and ending with a projection onto a set of testers
Distributed Implementation of Message Sequence Charts
International audienc
Integrated Model-checking for the Design of Safe and Efficient Distributed Software Commissioning
International audienc
- …