Concurrent Size

September 15, 2022 ยท Entered Twilight ยท ๐Ÿ› Proc. ACM Program. Lang.

๐Ÿ’ค TWILIGHT: Eternal Rest
Repo abandoned since publication

Repo contents: LICENSE, README.md, README.pdf, algorithms, compile.sh, measurements, pc_graphs.tex, run_measurements_and_produce_graphs.sh, run_tests.sh, server_graphs.tex

Authors Gal Sela, Erez Petrank arXiv ID 2209.07100 Category cs.DC: Distributed Computing Cross-listed cs.DS Citations 5 Venue Proc. ACM Program. Lang. Repository https://github.com/galysela/ConcurrentSize โญ 2 Last Checked 3 months ago
Abstract
The size of a data structure (i.e., the number of elements in it) is a widely used property of a data set. However, for concurrent programs, obtaining a correct size efficiently is non-trivial. In fact, the literature does not offer a mechanism to obtain a correct (linearizable) size of a concurrent data set without resorting to inefficient solutions, such as taking a full snapshot of the data structure to count the elements, or acquiring one global lock in all update and size operations. This paper presents a methodology for adding a concurrent linearizable size operation to sets and dictionaries with a relatively low performance overhead. Theoretically, the proposed size operation is wait-free with asymptotic complexity linear in the number of threads (independently of data-structure size). Practically, we evaluated the performance overhead by adding size to various concurrent data structures in Java$-$a skip list, a hash table and a tree. The proposed linearizable size operation executes faster by orders of magnitude compared to the existing option of taking a snapshot, while incurring a throughput loss of $1\%-20\%$ on the original data structure's operations.
Community shame:
Not yet rated
Community Contributions

Found the code? Know the venue? Think something is wrong? Let us know!

๐Ÿ“œ Similar Papers

In the same crypt โ€” Distributed Computing