SPECIAL ISSUE PAPER Micro-transactions for concurrent data structures

SUMMARY Transactional memory is a promising technique for enforcing disciplined access to shared data in a multiprocessor system. Transactional memory simplifies the implementation of a variety of concurrent data structures. In this paper, we study the benefits of a modest, real-time aware, hardware implementation of transactional memory that we call micro-transactions. In particular, we argue that hardware support for micro-transactions allows us to efficiently implement certain data structures. Those data structures are difficult to realize with the atomic operations provided by stock hardware and provide real-time guarantees for those operations. Our main implementation platform is the Java Optimized Processor system, a field-programmable gate array (FPGA) implementation of the Java virtual machine, optimized for real-time Java. We report on the performance of data structures implemented with locks, atomic instructions, and micro-transactions. Our results suggest that transactional memory is an interesting alternative to traditional concurrency control mechanisms. Copyright © 2012 John Wiley & Sons, Ltd. Received 19 August 2012; Revised 15 November 2012; Accepted 26 November 2012

[1]  Philippas Tsigas,et al.  Lock-free deques and doubly linked lists , 2008, J. Parallel Distributed Comput..

[2]  Yi Zhang,et al.  Wait-Free Queue Algorithms for the Real-time Java Specification , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[3]  Erez Petrank,et al.  Wait-free queues with multiple enqueuers and dequeuers , 2011, PPoPP '11.

[4]  Martin Schoeberl,et al.  A real-time Java chip-multiprocessor , 2010, TECS.

[5]  Michael Wolf,et al.  The pauseless GC algorithm , 2005, VEE '05.

[6]  Kunle Olukotun,et al.  Transactional memory coherence and consistency , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

[7]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

[8]  Jan Vitek,et al.  RTTM: real-time transactional memory , 2010, SAC '10.

[9]  Martin Schoeberl,et al.  Design and Implementation of Real-Time Transactional Memory , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[10]  Keir Fraser,et al.  A Practical Multi-word Compare-and-Swap Operation , 2002, DISC.

[11]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[12]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[13]  James H. Anderson,et al.  A lock-free approach to object sharing in real-time systems , 1997 .

[14]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[15]  Bradley C. Kuszmaul,et al.  Unbounded Transactional Memory , 2005, HPCA.

[16]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[17]  Heung Seok Chae,et al.  An adaptive load balancing management technique for RFID middleware systems , 2010 .

[18]  Michael F. Spear,et al.  Privatization techniques for software transactional memory , 2007, PODC '07.

[19]  Jan Vitek,et al.  Real-time wait-free queues using micro-transactions , 2011, JTRES '11.

[20]  Nir Shavit,et al.  An optimistic approach to lock-free FIFO queues , 2004, Distributed Computing.

[21]  Wolfgang Puffitsch,et al.  Hard real-time garbage collection for a Java chip multi-processor , 2011, JTRES '11.

[22]  Timothy L. Harris,et al.  Non-blocking Hashtables with Open Addressing , 2005, DISC.