System and Method for Implementing Shared Scalable Nonzero Indicators
First Claim
1. A computer-implemented method, comprising:
- writing a value to a shared data object;
determining whether said writing changed a summary value associated with the shared data object; and
in response to determining that said writing changed the summary value associated with the shared data object, modifying a value of a shared indicator object to reflect the changed summary value.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
46 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
writing a value to a shared data object; determining whether said writing changed a summary value associated with the shared data object; and in response to determining that said writing changed the summary value associated with the shared data object, modifying a value of a shared indicator object to reflect the changed summary value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
one or more processors; and a memory coupled to the one or more processors; wherein the memory comprises; a shared data object accessible by a plurality of threads executing on the one or more processors; and a shared indicator object accessible by the plurality of threads; wherein the memory further comprises program instructions executable by the one or more processors to implement; one of the plurality of threads writing a value to the shared data object; determining whether said writing changed a summary value associated with the shared data object; and in response to determining that said writing changed the summary value associated with the shared data object, modifying a value of a shared indicator object to reflect the changed summary value. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A computer-readable storage medium comprising program instructions computer-executable to implement:
-
one of a plurality of threads executing on one or more processors writing a value to a shared data object; determining whether said writing changed a summary value associated with the shared data object; in response to determining that said writing changed the summary value from zero to nonzero, setting the value of a shared Boolean indicator object to true; and in response to determining that said writing changed the summary value from nonzero to zero, setting the value of the shared Boolean indicator object to false. - View Dependent Claims (20)
-
Specification