The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.08 - August (2009 vol.20)
pp: 1173-1187
Anders Gidenstam , Max Planck Institute for Computer Science, Saarbrücken
Marina Papatriantafilou , Chalmers University of Technology, Göteborg
Håkan Sundell , University College of Borås, Borås
Philippas Tsigas , Chalmers University of Technology, Göteborg
ABSTRACT
We present an efficient and practical lock-free method for semiautomatic (application-guided) memory reclamation based on reference counting, aimed for use with arbitrary lock-free dynamic data structures. The method guarantees the safety of local as well as global references, supports arbitrary memory reuse, uses atomic primitives that are available in modern computer systems, and provides an upper bound on the amount of memory waiting to be reclaimed. To the best of our knowledge, this is the first lock-free method that provides all of these properties. We provide analytical and experimental study of the method. The experiments conducted have shown that the method can also provide significant performance improvements for lock-free algorithms of dynamic data structures that require strong memory management.
INDEX TERMS
Memory management, memory reclamation, semiautomatic, garbage collection, data structures, lock-free, shared memory.
CITATION
Anders Gidenstam, Marina Papatriantafilou, Håkan Sundell, Philippas Tsigas, "Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting", IEEE Transactions on Parallel & Distributed Systems, vol.20, no. 8, pp. 1173-1187, August 2009, doi:10.1109/TPDS.2008.167
REFERENCES
[1] J.M. Barth, “Shifting Garbage Collection Overhead to Compile Time,” Comm. ACM, vol. 20, no. 7, pp. 513-518, July 1977.
[2] G.E. Collins, “A Method for Overlapping and Erasure of Lists,” Comm. ACM, vol. 3, no. 12, pp. 655-657, 1960.
[3] D.L. Detlefs, P.A. Martin, M. Moir, and G.L. Steele, “Lock-Free Reference Counting,” Proc. 20th Ann. ACM Symp. Principles of Distributed Computing (PODC '01), pp. 190-199, Aug. 2001.
[4] L.D. Deutsch and D.G. Bobrow, “An Efficient, Incremental, Automatic Garbage Collector,” Comm. ACM, vol. 19, no. 9, pp.522-526, Sept. 1976.
[5] A. Gidenstam, M. Papatriantafilou, and P. Tsigas, “Allocating Memory in a Lock-Free Manner,” Proc. 13th Ann. European Symp. Algorithms (ESA '05), vol. 3669, pp. 242-329, Oct. 2005.
[6] M. Herlihy, “Wait-Free Synchronization,” ACM Trans. Programming and Systems, vol. 11, no. 1, pp. 124-149, Jan. 1991.
[7] M. Herlihy, “A Methodology for Implementing Highly Concurrent Data Objects,” ACM Trans. Programming Languages and Systems, vol. 15, no. 5, pp. 745-770, 1993.
[8] M. Herlihy, V. Luchangco, P. Martin, and M. Moir, “Dynamic-Sized Lock-Free Data Structures,” Proc. 21st Ann. ACM Symp. Principles of Distributed Computing (PODC '02), p.131, 2002.
[9] M. Herlihy, V. Luchangco, P. Martin, and M. Moir, “Nonblocking Memory Management Support for Dynamic-Sized Data Structures,” ACM Trans. Computer Systems, vol. 23, no. 2, pp. 146-196, 2005.
[10] M. Herlihy, V. Luchangco, and M. Moir, “The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structure,” Proc. 16th Int'l Symp. Distributed Computing (DISC'02), vol. 2508, pp. 339-353, Oct. 2002.
[11] M.P. Herlihy and J.E.B. Moss, “Lock-Free Garbage Collection for Multiprocessors,” IEEE Trans. Parallel and Distributed Systems, vol. 3, no. 3, pp. 304-311, May 1992.
[12] M.P. Herlihy and J.M. Wing, “Linearizability: A Correctness Condition for Concurrent Objects,” ACM Trans. Programming Languages and Systems, vol. 12, no. 3, pp. 463-492, July 1990.
[13] W.H. Hesselink and J.F. Groote, “Wait-Free Concurrent Memory Management by Create and Read until Deletion (CaRuD),” Distributed Computing, vol. 14, no. 1, pp. 31-39, Jan. 2001.
[14] M. Hoffman, O. Shalev, and N. Shavit, “The Baskets Queue,” Proc. 11th Int'l Conf. Principles of Distributed Systems (OPODIS '07), vol. 4878, pp. 401-414, 2007.
[15] P. Jayanti, “A Complete and Constant Time Wait-Free Implementation of CAS from LL/SC and Vice Versa,” Proc. 12th Int'l Symp. Distributed Computing (DISC '98), vol. 1499, pp. 216-230, Sept. 1998.
[16] P. Joisha, “Overlooking Roots: A Framework for Making Nondeferred Reference-Counting Garbage Collection Fast,” M.Sagiv, ed., Proc. Fifth Int'l Symp. Memory Management (ISMM'07), pp. 141-158, Oct. 2007.
[17] L. Lamport, “Concurrent Reading and Writing,” Comm. ACM, vol. 20, no. 11, pp. 806-811, 1977.
[18] M.M. Michael, “Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic Reads and Writes,” Proc. 21st Ann. Symp. Principles of Distributed Computing (PODC '02), pp. 21-30, 2002.
[19] M.M. Michael, “Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects,” IEEE Trans. Parallel and Distributed Systems, vol. 15, no. 8, pp. 491-504, Aug. 2004.
[20] M.M. Michael, “Scalable Lock-Free Dynamic Memory Allocation,” Proc. SIGPLAN 2004 Conf. Programming Languages Design and Implementation (PLDI '04), pp. 35-46, June 2004.
[21] M.M. Michael and M.L. Scott, “Correction of a Memory Management Method for Lock-Free Data Structures,” Technical Report TR599, Computer Science Dept., Univ. of Rochester, Dec. 1995.
[22] M. Moir, “Practical Implementations of Non-Blocking Synchronization Primitives,” Proc. 16th Ann. ACM Symp. Principles of Distributed Computing (PODC '97), pp. 219-228, 1997.
[23] M. Moir, V. Luchangco, and M. Herlihy, Lock-Free Implementation of Dynamic-Sized Shared Data Structure, US Patent WO 2003/060705 A3, Jan. 2003.
[24] Y.G. Park and B. Goldberg, “Reference Escape Analysis: Optimizing Reference Counting Based on the Lifetime of References,” Proc. Symp. Partial Evaluation and Semantics-Based Program Manipulation (PEPM '91), pp.178-189, June 1991.
[25] S. Schneider, C. Antonopoulos, and D. Nikolopoulos, “Scalable Locality-Conscious Multithreaded Memory Allocation,” Proc. Int'l Symp. Memory Management (ISMM '06), pp. 84-94, June 2006.
[26] H. Sundell, “Efficient and Practical Non-Blocking Data Structures,” PhD thesis, Chalmers Univ. of Tech nology, Nov. 2004.
[27] H. Sundell, “Wait-Free Reference Counting and Memory Management,” Proc. 19th Int'l Parallel and Distributed Processing Symp. (IPDPS '05), p. 24b, Apr. 2005.
[28] H. Sundell and P. Tsigas, “NOBLE: A Non-Blocking Inter-Process Communication Library,” Proc. Sixth Int'l Workshop Languages, Compilers and Run-Time Systems for Scalable Computers (LCR), 2002.
[29] H. Sundell and P. Tsigas, “Lock-Free and Practical Deques Using Single-Word Compare-and-Swap,” Proc. Eighth Int'l Conf. Principles of Distributed Systems (OPODIS '04), vol. 3544, pp. 240-255, Dec. 2004.
[30] H. Sundell and P. Tsigas, “Practical and Lock-Free Doubly Linked Lists,” Proc. Int'l Conf. Parallel and Distributed Processing Techniques and Applications (PDPTA '07), pp. 264-270, June 2007.
[31] J.D. Valois, “Implementing Lock-Free Queues,” Proc. Seventh Int'lConf. Parallel and Distributed Computing Systems (PDCS '94), pp. 64-69, Oct. 1994.
[32] J.D. Valois, “Lock-Free Data Structures,” PhD thesis, Rensselaer Polytechnic Inst., 1995.
36 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool