Highly-Concurrent Doubly-Linked Lists
Nitin Garg, Ed Zhu, Fabiano C. Botelho

TL;DR
This paper introduces 'adlist', a highly concurrent doubly-linked list that enables parallel insertions and deletions, significantly improving scalability in multi-core file systems while maintaining simplicity and consistency.
Contribution
The paper presents a novel concurrent doubly-linked list design that allows parallel operations on non-overlapping nodes, enhancing scalability in multi-threaded environments.
Findings
Enables parallel insert/delete on non-overlapping nodes
Maintains local consistency during concurrent operations
Used in Data Domain File System for improved scalability
Abstract
As file systems are increasingly being deployed on ever larger systems with many cores and multi-gigabytes of memory, scaling the internal data structures of file systems has taken greater importance and urgency. A doubly-linked list is a simple and very commonly used data structure in file systems but it is not very friendly to multi-threaded use. While special cases of lists, such as queues and stacks, have lock-free versions that scale reasonably well, the general form of a doubly-linked list offers no such solution. Using a mutex to serialize all operations remains the de-facto method of maintaining a doubly linked list. This severely limits the scalability of the list and developers must resort to ad-hoc workarounds that involve using multiple smaller lists (with individual locks) and deal with the resulting complexity of the system. In this paper, we present an approach to…
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 · Advanced Data Storage Technologies · Parallel Computing and Optimization Techniques
