Optimistic recovery in distributed systems
ACM Transactions on Computer Systems (TOCS)
Reliable communication in the presence of failures
ACM Transactions on Computer Systems (TOCS)
Recovery in distributed systems using optimistic message logging and check-pointing
Journal of Algorithms
An empirical comparison of monitoring algorithms for access anomaly detection
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Concerning the size of logical clocks in distributed systems
Information Processing Letters
The causal ordering abstraction and a simple way to implement it
Information Processing Letters
Consistent detection of global predicates
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
On-the-fly detection of data races for programs with nested fork-join parallelism
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
An efficient implementation of vector clocks
Information Processing Letters
Optimal tracing and replay for debugging message-passing parallel programs
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
The process group approach to reliable distributed computing
Communications of the ACM
On-line chain partitions of orders
Ordal'94 Selected papers from the conference on Orders, algorithms and applications
Clock Trees: Logical Clocks for Programs with Nested Parallelism
IEEE Transactions on Software Engineering
Consistent global states of distributed systems: fundamental concepts and mechanisms
Distributed systems (2nd Ed.)
Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
String realizers of posets with applications to distributed computing
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
Techniques to Tackle State Explosion in Global Predicate Detection
IEEE Transactions on Software Engineering
Verifying sequential consistency using vector clocks
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Plausible Clocks: Constant Size Logical Clocks for Distributed Systems
WDAG '96 Proceedings of the 10th International Workshop on Distributed Algorithms
A framework algorithm for dynamic, centralized dimension-bounded timestamps
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
Timestamping Messages in Synchronous Computations
ICDCS '02 Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02)
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Efficient detection of a class of stable properties
Distributed Computing
Cross-Entropy-Based Replay of Concurrent Programs
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Hi-index | 0.00 |
In a concurrent system with N processes, vector clocks of size N are used for tracking dependencies between the events. Using vectors of size N leads to scalability problems. Moreover, association of components with processes makes vector clocks cumbersome and inefficient for systems with a dynamic number of processes. We present a class of logical clock algorithms, called chain clock, for tracking dependencies between relevant events based on generalizing a process to any chain in the computation poset. Chain clocks are generally able to track dependencies using fewer than N components and also adapt automatically to systems with dynamic number of processes. We compared the performance of Dynamic Chain Clock (DCC) with vector clock for multithreaded programs in Java. With 1% of total events being relevant events, DCC requires 10 times fewer components than vector clock and the timestamp traces are smaller by a factor of 100. For the same case, although DCC requires shared data structures, it is still 10 times faster than vector clock in our experiments. We also study the class of chain clocks which perform optimally for posets of small width and show that a single algorithm cannot perform optimally for posets of small width as well as large width.