Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash 100 tok/s
Gemini 2.5 Pro 58 tok/s Pro
GPT-5 Medium 29 tok/s
GPT-5 High 29 tok/s Pro
GPT-4o 103 tok/s
GPT OSS 120B 480 tok/s Pro
Kimi K2 215 tok/s Pro
2000 character limit reached

Neutralization-Based Reclamation (NBR)

Updated 4 September 2025
  • Neutralization-Based Reclamation (NBR) is a safe memory reclamation algorithm that uses a neutralization mechanism to balance efficient memory cleanup with bounded unreclaimed memory in concurrent systems.
  • It employs lightweight inter-thread handshakes via OS signals and atomic read/write/CAS operations, ensuring that delayed threads are safely restarted from a clean state.
  • Empirical evaluations show that NBR improves throughput by up to 38% over conventional algorithms like hazard pointers and epoch-based methods, making it ideal for non-blocking data structures.

Neutralization-Based Reclamation (NBR) is a safe memory reclamation (SMR) algorithm designed to balance efficient reclamation of unused memory with bounding the amount of unreclaimed memory in concurrent data structures. NBR advances prior techniques (such as hazard pointer– and epoch-based methods) via a neutralization mechanism, enabling high performance and broad applicability using only atomic read, write, and compare-and-swap (CAS) primitives. The algorithm employs lightweight inter-thread handshakes mediated by OS signals, minimal code changes, and clear logical demarcation between read and update phases—providing both theoretical safety and empirical efficiency across a range of practical scenarios.

1. Core Principles and Mechanisms

NBR differs fundamentally from both Hazard Pointer (HP) and Epoch-Based Reclamation (EBR) algorithms. Whereas HP requires per-pointer protection and EBR allows potentially unbounded unreclaimed memory, NBR utilizes "neutralization" to forcibly interrupt threads impeding safe reclamation. The protocol works as follows:

  • Read Phase (begin()):Thethreadreservespointerstoallsharedrecordsitanticipatesaccessing.</li><li><strong>WritePhase</strong>(end()): The thread reserves pointers to all shared records it anticipates accessing.</li> <li><strong>Write Phase</strong> (end()): The thread transitions to a state where modifications are to be performed.
  • Neutralization Signal: If a thread delays reclamation by holding critical pointers, it is “neutralized” using an OS signal that causes it to abort the current traversal, discarding all local references and restarting from the root.

This separation is reminiscent of two-phased locking but specifically designed for non-blocking environments. The algorithm requires minimal code modifications, namely, tagging the entry and exit points of critical phases, and avoids intrusive record metadata or deep code restructuring.

2. Algorithmic Workflow and Implementation

The essential mechanism of NBR mandates that, prior to entering critical sections (marked by begin()),athreadprereservesallmemorylocationsitwillpotentiallyreadormodify.ThealgorithmslightweighthandshakingisorchestratedbyOSsignals,whichservetoinitiatetheneutralizationprotocolwhennecessary.</p><p>Arepresentativepseudocodefragment,illustratingintegrationwiththeHarrislinkedlist,canbesummarizedas:</p><p>!!!!0!!!!</p><p>Duringtraversalwithin<code>search</code>,eachnewreadphaseinitiatesfromtherootbybegin()), a thread pre-reserves all memory locations it will potentially read or modify. The algorithm’s lightweight handshaking is orchestrated by OS signals, which serve to initiate the neutralization protocol when necessary.</p> <p>A representative pseudocode fragment, illustrating integration with the Harris linked list, can be summarized as:</p> <p>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool insert(key) {
    Node *right_node, *left_node;
    do {
        // Begin read phase: reserve pointers
        right_node = search(key, &left_node);
        if ((right_node != tail) && (right_node.key == key))
            return false;
        Node *new_node = new Node(key);
        new_node.next = right_node;
        // Attempt to modify using CAS
        if (CAS(&(left_node.next), right_node, new_node))
            return true;
    } while (true);
}
</p> <p>During traversal within <code>search</code>, each new read phase initiates from the root by begin(), and is terminated by end$(), ensuring that threads never operate on potentially reclaimed memory. If a thread is neutralized mid-read, it restarts, thus maintaining safety guarantees.

For data structures featuring auxiliary updates or multi-phase traversals, NBR insists every new read phase commences cleanly from the root to eliminate the possibility of stale pointer access.

3. Performance Evaluation

Empirical results substantiate the efficiency of NBR relative to prevailing approaches. The reported metrics are:

Data Structure Comparison Performance Gain
Lock-based binary search tree vs. DEBRA Up to 38% faster
vs. HP Up to 17% faster
Lazy linked list vs. DEBRA 15% faster
vs. HP 243% faster

These improvements indicate that the cost incurred by occasional root restarts under neutralization is significantly less than the overhead resulting from frequent hazard pointer operations or the memory risk of unbounded EBR. The results are supported by latency and throughput measurements under high contention scenarios.

4. Target Data Structures and Usage Scenarios

NBR is applicable to a broad range of concurrent data structures, contingent on the presence of a natural split between search (read) and update phases. Notable examples include:

  • Harris linked list
  • Lock-free binary search trees (e.g., those by Natarajan et al.)
  • Brown’s ABTree

The algorithm integrates smoothly in environments where search traversals or auxiliary updates can be restarted from the root following neutralization, requiring only capture of begin()andend() and end() markers. In non-blocking operating systems, the reliance on atomic primitives and kernel signals maintains non-blocking guarantees and enables scalable implementation.

Structures or algorithms with low contention or those already designed with phase separation can adopt NBR with negligible performance penalty. However, the scheme may require adaptation or become impractical for operations that cannot be naturally demarcated or restarted safely from the root.

5. Benefits, Limitations, and Implications

Key advantages include:

  • Bounded Memory: NBR ensures tight upper bounds on unreclaimed memory, addressing the principal drawback of EBR.
  • Efficiency: Demonstrated empirically to outpace both DEBRA and HP approaches in representative benchmarks.
  • Minimal Programmer Burden: The only code modifications needed are phase delimiters, analogous to two-phased locking.
  • Non-blocking Operation: Maintained when paired with a non-blocking kernel and using atomic operations.

Principal limitations are:

  • Restart Overhead: Data structures that rely on intermediate node continuations (e.g., certain AVL trees or those using parent pointers) may incur substantial cost due to repeated root restarts.
  • Applicability Restrictions: Immediate compatibility is limited to data structures with simple phase segmentation; more intricate update logic may demand extensive code revision.
  • Record Reservation: NBR presumes that threads can reserve all relevant shared records prior to modification; dynamic or unpredictable access patterns can compromise progress or require further adaptation.

A plausible implication is that while NBR is highly suitable for data structures with clearly structured traversals and updates, its efficiency is context-dependent and may degrade if restart costs are not offset by overall operation throughput.

6. Relationship to Existing SMR Algorithms and System Integration

NBR situates itself in the landscape of SMR algorithms as an intermediary between hazard pointer and epoch-based methods, merging bounded memory safety and superior speed with a neutralization-based protocol. Unlike hybrid approaches requiring specialized compiler or hardware support, complex record layouts, or intrusive design changes, it emphasizes simplicity and universality, restricted only by the atomicity of operations and availability of OS signal mechanisms.

Integrating NBR into existing systems necessitates atomic read/write/CAS support and the ability to send/handle OS signals across participating threads. Its protocol is particularly advantageous in lock-free environments and workloads prone to high contention or frequent traversals.

7. Conclusions

Neutralization-Based Reclamation stands out for balancing speed, safety, and ease of integration in SMR for concurrent data structures. The algorithm leverages atomic primitives and kernel signals via a neutralization mechanism, achieving bounded memory reclamation and superior benchmark results compared to alternatives. Its adoption is recommended for systems and data structures amenable to read/update phase segmentation and root-restart traversals. Methodological caution is warranted for structures where root restarts or record reservation are infeasible, as these contexts may introduce operational overhead and diminish the advantages conferred by NBR.