Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
A critique of ANSI SQL isolation levels
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Versioned boxes as the basis for memory transactions
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
STMBench7: a benchmark for software transactional memory
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Dynamic performance tuning of word-based software transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
RingSTM: scalable transactions with a single atomic instruction
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Dreadlocks: efficient deadlock detection
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Versioned transactional shared memory for the FénixEDU web application
Proceedings of the 2nd workshop on Dependable distributed data management
Committing conflicting transactions in an STM
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
On avoiding spare aborts in transactional memory
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
On maintaining multiple versions in STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Brief announcement: single-version permissive STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Euro-Par'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II
Lock-free and scalable multi-version software transactional memory
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
DISC'06 Proceedings of the 20th international conference on Distributed Computing
A lazy snapshot algorithm with eager validation
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Efficient support for in-place metadata in transactional memory
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
Time-warp: lightweight abort minimization in transactional memory
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
We present Selective Multi-Versioning (SMV), a new STM that reduces the number of aborts, especially those of long read-only transactions. SMV keeps old object versions as long as they might be useful for some transaction to read. It is able to do so while still allowing reading transactions to be invisible by relying on automatic garbage collection to dispose of obsolete versions. SMV is most suitable for read-dominated workloads, for which it performs better than previous solutions. It has an up to ×7 throughput improvement over a single-version STMand more than a two-fold improvement over an STMkeeping a constant number of versions per object. We show that the memory consumption of algorithms keeping a constant number of versions per object might grow exponentially with the number of objects, while SMV operates successfully even in systems with stringent memory constraints.