Abstract
We introduce transactions into libraries of concurrent data structures; such transactions can be used to ensure atomicity of sequences of data structure operations. By focusing on transactional access to a well-defined set of data structure operations, we strike a balance between the ease-of-programming of transactions and the efficiency of custom-tailored data structures. We exemplify this concept by designing and implementing a library supporting transactions on any number of maps, sets (implemented as skiplists), and queues. Our library offers efficient and scalable transactions, which are an order of magnitude faster than state-of-the-art transactional memory toolkits. Moreover, our approach treats stand-alone data structure operations (like put and enqueue) as first class citizens, and allows them to execute with virtually no overhead, at the speed of the original data structure library.
- Concurrentskiplistmap from java.util.concurrent. http: //docs.oracle.com/javase/7/docs/api/java/util/ concurrent/ConcurrentSkipListMap.html.Google Scholar
- C++ concurrent data structures from libcd. http://libcds. sourceforge.net/.Google Scholar
- Tl2 implementation. github.com/daveboutcher/tl2-x86-mp.Google Scholar
- N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. Transactional predication: High-performance concurrent sets and maps for stm. In PODC, 2010. Google Scholar
Digital Library
- N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. In ACM Sigplan Notices, 2010. Google Scholar
Digital Library
- C. Cascaval, C. Blundell, M. Michael, H. W. Cain, P. Wu, S. Chiras, and S. Chatterjee. Software transactional memory: Why is it only a research toy? Queue, 6(5):40:46–40:58, Sept. 2008. Google Scholar
Digital Library
- S. Cherem, T. Chilimbi, and S. Gulwani. Inferring locks for atomic sections. In PLDI, 2008. Google Scholar
Digital Library
- T. Crain, V. Gramoli, and M. Raynal. A contention-friendly methodology for search structures. Technical report, RR-1989, INRIA, 2012.Google Scholar
- T. Crain, V. Gramoli, and M. Raynal. No hot spot non-blocking skip list. In ICDCS, pages 196–205, 2013. Google Scholar
Digital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In Distributed Computing, pages 194–208. Springer, 2006. Google Scholar
Digital Library
- I. Dick, A. Fekete, and V. Gramoli. Logarithmic data structures for multicores. Technical report, 697, University of Sydney, 2014.Google Scholar
- K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. The notions of consistency and predicate locks in a database system. Commun. ACM, 1976. Google Scholar
Digital Library
- K. Fraser. Practical lock-freedom. PhD thesis, University of Cambridge, 2004.Google Scholar
- G. Golan-Gueta, G. Ramalingam, M. Sagiv, and E. Yahav. Concurrent libraries with foresight. In PLDI, 2013. Google Scholar
Digital Library
- G. Golan-Gueta, G. Ramalingam, M. Sagiv, and E. Yahav. Automatic scalable atomicity via semantic locking. In PPOPP, 2015. Google Scholar
Digital Library
- V. Gramoli. More than you ever wanted to know about synchronization: Synchrobench, measuring the impact of the synchronization on concurrent algorithms. In PPoPP, pages 1–10, 2015. Google Scholar
Digital Library
- R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In PPoPP, pages 175–184, 2008. Google Scholar
Digital Library
- R. Guerraoui, T. A. Henzinger, and V. Singh. Software transactional memory on relaxed memory models. In Computer Aided Verification, 2009. Google Scholar
Digital Library
- B. Haagdorens, T. Vermeiren, and M. Goossens. Improving the performance of signature-based network intrusion detection sensors by multi-threading. In WISA’04, pages 188–203, 2005. Google Scholar
Digital Library
- T. Harris, J. Larus, and R. Rajwar. Transactional Memory, 2nd Edition. Morgan and Claypool Publishers, 2010. Google Scholar
Digital Library
- S. Heller, M. Herlihy, V. Luchangco, M. Moir, W. N. Scherer III, and N. Shavit. A lazy concurrent list-based set algorithm. In Principles of Distributed Systems, pages 3–16. 2006. Google Scholar
Digital Library
- M. Herlihy. The transactional manifesto: Software engineering and non-blocking synchronization. In PLDI, 2005. Google Scholar
Digital Library
- M. Herlihy and E. Koskinen. Transactional boosting: a methodology for highly-concurrent transactional objects. In PPoPP, 2008. Google Scholar
Digital Library
- M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA, pages 289–300, 1993. Google Scholar
Digital Library
- M. Herlihy and N. Shavit. The art of multiprocessor programming. Morgan Kaufmann, 2008. Google Scholar
Digital Library
- M. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer, III. Software transactional memory for dynamic-sized data structures. In PODC, 2003. Google Scholar
Digital Library
- M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A provably correct scalable concurrent skip list. In OPODIS, 2006.Google Scholar
- M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A simple optimistic skiplist algorithm. In SIROCCO, pages 124–138. 2007. Google Scholar
Digital Library
- M. Herlihy, Y. Lev, and N. Shavit. A lock-free concurrent skiplist with wait-free search. Unpublished Manuscript, Sun Microsystems Laboratories, Burlington, Massachusetts, 2007.Google Scholar
- M. P. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., July 1990. Google Scholar
Digital Library
- N. Herman, J. Priya Inala, Y. Huang, L. Tsai, E. Kohler, B. Liskov, and L. Shrira. Type-aware transactions for faster concurrent code. In EuroSys, 2016. To appear. Google Scholar
Digital Library
- M. Hicks, J. S. Foster, and P. Prattikakis. Lock inference for atomic sections. In ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, June 2006.Google Scholar
- Intel. Intel transactional synchronization extensions. In Intel architecture instruction set extensions programming reference. 2012.Google Scholar
- E. Koskinen, M. Parkinson, and M. Herlihy. Coarse-grained transactions. In POPL, pages 19–30, 2010. Google Scholar
Digital Library
- M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI, 2007. Google Scholar
Digital Library
- D. Lea. Concurrent programming in Java: design principles and patterns. Addison-Wesley Professional, 2000. Google Scholar
Digital Library
- D. Lea. Overview of package util. concurrent release 1.3. 4. http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/ dl/util/concurrent/intro.html, Retrieved 2011-01-01.Google Scholar
- V. J. Marathe, M. F. Spear, and M. L. Scott. Transaction safe nonblocking data structures. In DISC, 2007. Google Scholar
Digital Library
- A. Matveev, N. Shavit, P. Felber, and P. Marlier. Read-log-update: a lightweight synchronization mechanism for concurrent programming. In SOSP, pages 168–183, 2015. Google Scholar
Digital Library
- B. McCloskey, F. Zhou, D. Gay, and E. Brewer. Autolocker: synchronization inference for atomic sections. In POPL, 2006. Google Scholar
Digital Library
- C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In Workload Characterization, IISWC 2008, pages 35–46, 2008.Google Scholar
- Y. Ni, V. S. Menon, A.-R. Adl-Tabatabai, A. L. Hosking, R. L. Hudson, J. E. B. Moss, B. Saha, and T. Shpeisman. Open nesting in software transactional memory. In PPoPP, pages 68–78, 2007. Google Scholar
Digital Library
- D. Perelman, A. Byshevsky, O. Litmanovich, and I. Keidar. Smv: Selective multi-versioning stm. In DISC, pages 125–140, 2011. Google Scholar
Digital Library
- W. Pugh. Concurrent maintenance of skip lists. 1998.Google Scholar
- R. Rajwar and J. R. Goodman. Speculative lock elision: Enabling highly concurrent multithreaded execution. In MICRO, 2001. Google Scholar
Digital Library
- M. Scott. Transactional memory today. SIGACT News, 46(2):96–104, June 2015. Google Scholar
Digital Library
- O. Shacham, N. G. Bronson, A. Aiken, M. Sagiv, M. T. Vechev, and E. Yahav. Testing atomicity of composed concurrent operations. In OOPSLA, pages 51–64, 2011. Google Scholar
Digital Library
- N. Shavit and I. Lotan. Skiplist-based concurrent priority queues. In IPDPS, pages 263–268, 2000.Google Scholar
Cross Ref
- H. Sundell and P. Tsigas. Fast and lock-free concurrent priority queues for multi-thread systems. In IPDPS, 2003. Google Scholar
Digital Library
- A. Turon. Reagents: expressing and composing fine-grained concurrency. In ACM SIGPLAN Notices, volume 47, pages 157–168, 2012. Google Scholar
Digital Library
- O. Ziv, A. Aiken, G. Golan-Gueta, G. Ramalingam, and M. Sagiv. Composing concurrency control. SIGPLAN Not., 50(6), June 2015. Google Scholar
Digital Library
Index Terms
Transactional data structure libraries
Recommendations
Transactional data structure libraries
PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe introduce transactions into libraries of concurrent data structures; such transactions can be used to ensure atomicity of sequences of data structure operations. By focusing on transactional access to a well-defined set of data structure operations, ...
Brief Announcement: Transactional Data Structure Libraries
SPAA '16: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and ArchitecturesWe introduce transactions into libraries of concurrent data structures; such transactions can be used to ensure atomicity of sequences of data structure operations. By restricting transactional access to a well-defined set of data structure operations, ...
Unbounded page-based transactional memory
Proceedings of the 2006 ASPLOS ConferenceExploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are ...







Comments