Scalable NonZero Indicator for Concurrent Reference Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional shared counters face challenges in achieving scalability, low latency, and non-blocking behavior, especially under heavy contention, which affects performance and memory interconnect traffic in concurrent computing applications.

Innovation Solution

The introduction of a Scalable NonZero Indicator (SNZI) object, which uses weaker semantics to determine if a shared data object's value is zero or nonzero, allowing for atomic read-modify-write operations and supporting arrive, depart, and query operations, thereby reducing contention and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional shared counters use compare-and-swap operations to achieve non-blocking behavior, then linearizability and non-blocking performance are improved, but scalability deteriorates under heavy contention

Engineering Contradiction:
ImprovelinearizabilityVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the essential functionality of traditional counters by separating the counter value from the nonzero indicator. Only the indicator portion is shared across threads, while each thread maintains its own counter value locally. This extraction eliminates the need for global counter synchronization while preserving the ability to detect nonzero states, thereby achieving scalability without sacrificing linearizability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The counter is segmented into two distinct parts: a shared nonzero indicator portion and local counter value portions in each thread. The indicator portion is updated atomically using simple compare-and-swap operations, while individual thread counters are maintained independently. This segmentation allows concurrent threads to operate without interfering with each other's counter values, resolving the scalability issue.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If traditional counters track exact reference values, then measurement precision is improved, but device complexity and memory traffic increase

Engineering Contradiction:
Improvereference value accuracyVSAvoidcounter implementation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the essential information needed for garbage collection decisions - whether the reference count is nonzero or zero - from the complete counter value. The shared indicator stores only this binary state information, eliminating the need to track exact reference values globally. This reduces memory traffic and implementation complexity while maintaining sufficient precision for resource reclamation decisions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of tracking the complete exact value of the counter globally, the system performs a partial action by maintaining only the nonzero/zero state information in the shared indicator. This partial tracking is sufficient for the intended purpose of determining when resources can be reclaimed, avoiding the excessive complexity of full counter synchronization while achieving the necessary measurement precision for garbage collection.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If simple reference counting is used to determine resource reclamation, then ease of operation is improved, but scalability deteriorates due to heavy sharing

Engineering Contradiction:
Improvereference counting simplicityVSAvoidscalability under heavy sharing
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the reference counting mechanism into a simple shared indicator for nonzero detection and local counter values for precise tracking. Each thread maintains its own counter, eliminating the need for global counter updates during reference operations. The shared indicator is updated only when necessary using atomic operations, enabling simple reference counting semantics to scale to heavy sharing scenarios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared nonzero indicator acts as an intermediary between individual thread counters and the garbage collection system. Instead of requiring global counter access for all operations, threads interact with the indicator to determine resource availability. This intermediary abstraction allows simple reference counting logic to function correctly under heavy sharing by mediating between local thread operations and global resource reclamation decisions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8909601B2System and method for implementing shared scalable nonzero indicators
Publication Date: 2014.12.09 SUN MICROSYSTEMS INC
  • US8909601B2 patent drawing
  • US8909601B2 patent drawing
  • US8909601B2 patent drawing

AI summary

A Scalable NonZero Indicator (SNZI) object in a concurrent computing application may include a shared data portion (e.g., a counter portion) and a shared nonzero indicator portion, and/or may be an element in a hierarchy of SNZI objects that filters changes in non-root nodes to a root node. SNZI objects may be accessed by software applications through an API that includes a query operation to return the value of the nonzero indicator, and arrive (increment) and depart (decrement) operations. Modifications of the data portion and/or the indicator portion may be performed using atomic read-modify-write type operations. Some SNZI objects may support a reset operation. A shared data object may be set to an intermediate value, or an announce bit may be set, to indicate that a modification is in progress that affects its corresponding indicator value. Another process or thread seeing this indication may “help” complete the modification before proceeding.