A Simple and Efficient Lock-Free Hash Trie Design for Concurrent Tabling
Miguel Areias, Ricardo Rocha

TL;DR
This paper introduces a lock-free hash trie data structure for concurrent tabling in logic programming, significantly improving performance and scalability by reducing synchronization overhead using CAS instructions.
Contribution
The work presents a novel lock-free hash trie design that enables shared concurrent access in tabling systems, enhancing efficiency over previous lock-based approaches.
Findings
Reduces execution time in Yap Prolog system
Improves scalability in concurrent environments
Minimizes synchronization issues with hash trie design
Abstract
A critical component in the implementation of a concurrent tabling system is the design of the table space. One of the most successful proposals for representing tables is based on a two-level trie data structure, where one trie level stores the tabled subgoal calls and the other stores the computed answers. In this work, we present a simple and efficient lock-free design where both levels of the tries can be shared among threads in a concurrent environment. To implement lock-freedom we took advantage of the CAS atomic instruction that nowadays can be widely found on many common architectures. CAS reduces the granularity of the synchronization when threads access concurrent areas, but still suffers from low-level problems such as false sharing or cache memory side-effects. In order to be as effective as possible in the concurrent search and insert operations over the table space data…
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 · Security and Verification in Computing · Cryptography and Data Security
