Proving Correctness of Concurrent Objects by Validating Linearization Points
Sathya Peri, Muktikanta Sa, Ajay Singh, Nandini Singhal, Archit Somani

TL;DR
This paper presents a manual technique for verifying the correctness of concurrent data structures by validating their linearization points, aiming to aid developers in understanding and improving CDS correctness.
Contribution
The paper introduces a handcrafted method for proving CDS correctness through LP validation, providing insights into LP identification and aiding in the development of efficient CDS variants.
Findings
Technique helps verify correctness given LPs
Provides insights into LP identification process
Potential to guide development of new CDSs
Abstract
Concurrent data structures or CDS such as concurrent stacks, queues, sets etc. have become very popular in the past few years partly due to the rise of multi-core systems. But one of the greatest challenges with CDSs has been developing correct structures and then proving the correctness of these structures. We believe that techniques that help prove the correctness of these CDSs can also guide in developing new CDSs. An intuitive technique to prove the correctness of CDSs is using Linearization Points or LPs. An LP is an atomic event in the execution interval of each method such that the execution of the entire method seems to have taken place in the instant of that event. One of the main challenges with the LP based approach is to identify the correct LPs of a CDS. Identifying the correct LPs can be deceptively wrong in many cases. In fact, in many cases, the LP identified or even…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Real-Time Systems Scheduling
