• DocumentCode
    2578428
  • Title

    Understanding and Effectively Preventing the ABA Problem in Descriptor-Based Lock-Free Designs

  • Author

    Dechev, Damian ; Pirkelbauer, Peter ; Stroustrup, Bjarne

  • Author_Institution
    Scalable Comput. R&D Dept., Sandia Nat. Labs., Livermore, CA, USA
  • fYear
    2010
  • fDate
    5-6 May 2010
  • Firstpage
    185
  • Lastpage
    192
  • Abstract
    An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures demand the application of programming techniques for reliable and efficient concurrent synchronization. Some recently developed Compare-And-Swap (CAS) based nonblocking techniques hold the promise of delivering practical and safer concurrency. The ABA problem is a fundamental problem to many CAS-based designs. Its significance has increased with the suggested use of CAS as a core atomic primitive for the implementation of portable lock-free algorithms. The ABA problem´s occurrence is due to the intricate and complex interactions of the application´s concurrent operations and, if not remedied, ABA can significantly corrupt the semantics of a nonblocking algorithm. The current state of the art leaves the elimination of the ABA hazards to the ingenuity of the software designer. In this work we provide the first systematic and detailed analysis of the ABA problem in lock-free Descriptor-based designs. We study the semantics of Descriptor-based lock-free data structures and propose a classification of their operations that helps us better understand the ABA problem and subsequently derive an effective ABA prevention scheme. Our ABA prevention approach outperforms by a large factor the use of the alternative CAS-based ABA prevention schemes. It offers speeds comparable to the use of the architecture-specific CAS2 instruction used for version counting. We demonstrate our ABA prevention scheme by integrating it into an advanced nonblocking data structure, a lock-free dynamically resizable array.
  • Keywords
    concurrency control; data structures; multiprocessing systems; pattern classification; real-time systems; ubiquitous computing; ABA prevention scheme; advanced nonblocking data structure; compare-and-swap based nonblocking techniques; concurrent synchronization; core atomic primitive; descriptor-based lock-free data structures; descriptor-based lock-free designs; lock-free dynamically resizable array; operation classification; portable lock-free algorithms; programming techniques; real-time system; ubiquitous multicore architectures; Application software; Computer science; Concurrent computing; Content addressable storage; Data structures; Distributed computing; Hazards; Libraries; Real time systems; Software design; ABA problem; lock-free programming techniques; nonblocking synchronization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Object/Component/Service-Oriented Real-Time Distributed Computing (ISORC), 2010 13th IEEE International Symposium on
  • Conference_Location
    Carmona, Seville
  • ISSN
    1555-0885
  • Print_ISBN
    978-1-4244-7083-9
  • Electronic_ISBN
    1555-0885
  • Type

    conf

  • DOI
    10.1109/ISORC.2010.10
  • Filename
    5479555