Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Multiversion concurrency control—theory and algorithms
ACM Transactions on Database Systems (TODS)
Implementing atomic actions on decentralized data
ACM Transactions on Computer Systems (TOCS)
Java Virtual Machine Specification
Java Virtual Machine Specification
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Effective Optimistic Concurrency Control in Multiversion Object Bases
ISOOMS '94 Proceedings of the International Symposium on Object-Oriented Methodologies and Systems
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Toward a theory of transactional contention managers
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Versioned transactional shared memory for the FénixEDU web application
Proceedings of the 2nd workshop on Dependable distributed data management
A Lock-Based STM Protocol That Satisfies Opacity and Progressiveness
OPODIS '08 Proceedings of the 12th International Conference on Principles of Distributed Systems
Stretching transactional memory
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Unifying Memory and Database Transactions
Euro-Par '09 Proceedings of the 15th International Euro-Par Conference on Parallel Processing
Extensible software transactional memory
Proceedings of the Third C* Conference on Computer Science and Software Engineering
On maintaining multiple versions in STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Memoization of methods using software transactional memory to track internal state dependencies
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Generic replication of software transactional memory
Proceedings of the 7th Middleware Doctoral Symposium
Lock-free and scalable multi-version software transactional memory
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Asynchronous lease-based replication of software transactional memory
Proceedings of the ACM/IFIP/USENIX 11th International Conference on Middleware
Software transactional memories: an approach for multicore programming
The Journal of Supercomputing
Efficiently speeding up sequential computation through the n-way programming model
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Strict serializability is harmless: a new architecture for enterprise applications
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Snake: control flow distributed software transactional memory
SSS'11 Proceedings of the 13th international conference on Stabilization, safety, and security of distributed systems
SMV: selective multi-versioning STM
DISC'11 Proceedings of the 25th international conference on Distributed computing
STM with transparent API considered harmful
ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I
Lightweight transactional arrays for read-dominated workloads
ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part II
Profiling and tuning the performance of an STM-based concurrent program
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
A lock-free cache invalidation protocol for the atom system
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
PolyCert: polymorphic self-optimizing replication for in-memory transactional grids
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
Subobject transactional memory
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
Efficient support for in-place metadata in transactional memory
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
PolyCert: polymorphic self-optimizing replication for in-memory transactional grids
Proceedings of the 12th International Middleware Conference
A framework for self-healing software systems
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
In this paper, we propose the use of Versioned Boxes, which keep a history of values, as the basis for language-level memory transactions. Unlike previous work on software transactional memory, in our proposal read-only transactions never conflict with any other concurrent transaction. This may improve significantly the concurrency on applications which have longer transactions and a high read/write ratio.Furthermore, we discuss how we can reduce transaction conflicts by delaying computations and re-executing only parts of a transaction in case of a conflict. We propose two language-level abstractions to support these strategies: the per-transaction boxes and the restartable transactions.Finally, we lay out the basis for a more generic model, which better supports fine-grained restartable transactions. The goal of this new model is to generalize the previous two abstractions to reduce conflicts.