Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Consistent detection of global predicates
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Atomic snapshots of shared memory
Journal of the ACM (JACM)
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Distributed snapshots: determining global states of distributed systems
ACM Transactions on Computer Systems (TOCS)
From serializable to causal transactions (abstract)
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Consistent global states of distributed systems: fundamental concepts and mechanisms
Distributed systems (2nd Ed.)
The serializability of concurrent database updates
Journal of the ACM (JACM)
Plausible clocks: constant size logical clocks for distributed systems
Distributed Computing
Detecting causal relationships in distributed computations: in search of the holy grail
Distributed Computing
Time-based transactional memory with scalable time bases
Proceedings of the nineteenth annual ACM symposium on Parallel algorithms and architectures
Transactional Memory: An Overview
IEEE Micro
On the correctness of transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Transactions are back---but are they the same?
ACM SIGACT News
Needed: foundations for transactional memory
ACM SIGACT News
Distributed computing and the multicore revolution
ACM SIGACT News
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
A Lock-Based STM Protocol That Satisfies Opacity and Progressiveness
OPODIS '08 Proceedings of the 12th International Conference on Principles of Distributed Systems
Provable STM Properties: Leveraging Clock and Locks to Favor Commit and Early Abort
ICDCN '09 Proceedings of the 10th International Conference on Distributed Computing and Networking
Help when needed, but no more: efficient read/write partial snapshot
DISC'09 Proceedings of the 23rd international conference on Distributed computing
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Software Transactional Memories: An Approach for Multicore Programming
PaCT '09 Proceedings of the 10th International Conference on Parallel Computing Technologies
Brief announcement: read invisibility, virtual world consistency and permissiveness are compatible
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
Software transactional memories: an approach for multicore programming
The Journal of Supercomputing
Read invisibility, virtual world consistency and probabilistic permissiveness are compatible
ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I
Theoretical Computer Science
Hi-index | 0.00 |
The aim of a Software Transactional Memory (STM) is to discharge the programmers from the management of synchronization in multiprocess programs that access concurrent objects. To that end, a STM system provides the programmer with the concept of a transaction. The job of the programmer is to design each process the application is made up of as a sequence of transactions. A transaction is a piece of code that accesses concurrent objects, but contains no explicit synchronization statement. It is the job of the underlying STM system to provide the illusion that each transaction appears as being executed atomically. Of course, for efficiency, a STM system has to allow transactions to execute concurrently. Consequently, due to the underlying STM concurrency management, a transaction commits or aborts. This paper first presents a new STM consistency condition, called virtual world consistency. This condition states that no transaction reads object values from an inconsistent global state. It is similar to opacity for the committed transactions but weaker for the aborted transactions. More precisely, it states that (1) the committed transactions can be totally ordered, and (2) the values read by each aborted transaction are consistent with respect to its causal past only. Hence, virtual world consistency is weaker than opacity while keeping its spirit. Then, assuming the objects shared by the processes are atomic read/write objects, the paper presents a STM protocol that ensures virtual world consistency (while guaranteeing the invisibility of the read operations). From an operational point of view, this protocol is based on a vector-clock mechanism. Finally, the paper considers the case where the shared objects are regular read/write objects. It also shows how the protocol can easily be weakened while still providing an STM system that satisfies causal consistency, a condition strictly weaker than virtual world consistency.