Saved in:
Bibliographic Details
Main Authors: Abdulla, Parosh Aziz, Grahn, Samuel, Jonsson, Bengt, Krishna, Shankaranarayanan, Mishra, Om Swostik
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2509.17795
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911168430342144
author Abdulla, Parosh Aziz
Grahn, Samuel
Jonsson, Bengt
Krishna, Shankaranarayanan
Mishra, Om Swostik
author_facet Abdulla, Parosh Aziz
Grahn, Samuel
Jonsson, Bengt
Krishna, Shankaranarayanan
Mishra, Om Swostik
contents This paper revisits the fundamental problem of monitoring the linearizability of concurrent stacks, queues, sets, and multisets. Given a history of a library implementing one of these abstract data types, the monitoring problem is to answer whether the given history is linearizable. For stacks, queues, and (multi)sets, we present monitoring algorithms with complexities $\mathcal{O}(n^2)$, $\mathcal{O}(n\; log\, n)$, and $\mathcal{O}{(n)}$, respectively, where $n$ is the number of operations in the input history. For stacks and queues, our results hold under the standard assumption of {\it data-independence}, i.e., the behavior of the library is not sensitive to the actual values stored in the data structure. Past works to solve the same problems have cubic time complexity and (more seriously) have correctness issues: they either (i) lack correctness proofs or (ii) the suggested correctness proofs are erroneous (we present counter-examples), or (iii) have incorrect algorithms. Our improved complexity results rely on substantially different algorithms for which we provide detailed proofs of correctness. We have implemented our stack and queue algorithms in LiMo (Linearizability Monitor). We evaluate LiMo and compare it with the state-of-the-art tool Violin -- whose correctness proofs we have found errors in -- which checks for linearizability violations. Our experimental evaluation confirms that LiMo outperforms Violin regarding both efficiency and scalability.
format Preprint
id arxiv_https___arxiv_org_abs_2509_17795
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Efficient Linearizability Monitoring
Abdulla, Parosh Aziz
Grahn, Samuel
Jonsson, Bengt
Krishna, Shankaranarayanan
Mishra, Om Swostik
Programming Languages
This paper revisits the fundamental problem of monitoring the linearizability of concurrent stacks, queues, sets, and multisets. Given a history of a library implementing one of these abstract data types, the monitoring problem is to answer whether the given history is linearizable. For stacks, queues, and (multi)sets, we present monitoring algorithms with complexities $\mathcal{O}(n^2)$, $\mathcal{O}(n\; log\, n)$, and $\mathcal{O}{(n)}$, respectively, where $n$ is the number of operations in the input history. For stacks and queues, our results hold under the standard assumption of {\it data-independence}, i.e., the behavior of the library is not sensitive to the actual values stored in the data structure. Past works to solve the same problems have cubic time complexity and (more seriously) have correctness issues: they either (i) lack correctness proofs or (ii) the suggested correctness proofs are erroneous (we present counter-examples), or (iii) have incorrect algorithms. Our improved complexity results rely on substantially different algorithms for which we provide detailed proofs of correctness. We have implemented our stack and queue algorithms in LiMo (Linearizability Monitor). We evaluate LiMo and compare it with the state-of-the-art tool Violin -- whose correctness proofs we have found errors in -- which checks for linearizability violations. Our experimental evaluation confirms that LiMo outperforms Violin regarding both efficiency and scalability.
title Efficient Linearizability Monitoring
topic Programming Languages
url https://arxiv.org/abs/2509.17795