Concurrent reads and inserts into a data structure without latching or waiting by readers
First Claim
1. A method comprising:
- performing, by a data structure processor, concurrent read and write operations into a hierarchical data structure;
acquiring latches, by writers, on the hierarchical data structure elements that the writers modify;
directly accessing the hierarchical data structure elements by readers without acquiring latches;
executing a modify operation by a writer for one or more levels of the hierarchical data structure, wherein the modify operation comprises performing a lookup into a parent node for determining a child node to modify, the child node including a linked list, and the modify inserts new entries to the linked list by atomically modifying linked list next pointers; and
tracking when removed portions of the hierarchical data structure are no longer referenced by use of a combination of a global state value and a local copy of the global state value;
wherein;
the global state value transitions through a non-repeating sequence of values;
no longer referenced portions of the hierarchical data structure are tagged with the global state value captured after last reference removed; and
the hierarchical data structure comprises a mutable tier including extendible hashing, a hash table, and an immutable tier including a concise hash table (CHT) bitmap.
1 Assignment
0 Petitions
Accused Products
Abstract
A method includes performing, by a data structure processor, concurrent read and write operations into a hierarchical data structure. Writers acquire latches on the hierarchical data structure elements that the latches modify. The hierarchical data structure elements are directly accessed by readers without acquiring latches. A modify operation is executed by a writer for one or more levels of the hierarchical data structure. When removed portions of the hierarchical data structure are no longer referenced, tracking is performed by use of a combination of a global state value and a copied local state value. The global state value transitions through a non-repeating sequence of values. No longer referenced portions of the hierarchical data structure are tagged with the current global state value.
-
Citations
20 Claims
-
1. A method comprising:
-
performing, by a data structure processor, concurrent read and write operations into a hierarchical data structure; acquiring latches, by writers, on the hierarchical data structure elements that the writers modify; directly accessing the hierarchical data structure elements by readers without acquiring latches; executing a modify operation by a writer for one or more levels of the hierarchical data structure, wherein the modify operation comprises performing a lookup into a parent node for determining a child node to modify, the child node including a linked list, and the modify inserts new entries to the linked list by atomically modifying linked list next pointers; and tracking when removed portions of the hierarchical data structure are no longer referenced by use of a combination of a global state value and a local copy of the global state value; wherein; the global state value transitions through a non-repeating sequence of values; no longer referenced portions of the hierarchical data structure are tagged with the global state value captured after last reference removed; and the hierarchical data structure comprises a mutable tier including extendible hashing, a hash table, and an immutable tier including a concise hash table (CHT) bitmap. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for concurrent read and write operations for hierarchical data structure elements, the computer program product comprising a non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor to:
-
perform, by the processor, concurrent read and write operations into a hierarchical data structure; acquire, by writers, latches on the hierarchical data structure elements that the writers modify; directly access, by the processor, the hierarchical data structure elements by readers without acquiring latches; execute, by the processor, a modify operation by a writer for one or more levels of the hierarchical data structure, wherein the modify operation comprises performing a lookup into a parent node for determining a child node to modify, the child node including a linked list, and the modify inserts new entries to the linked list by atomically modifying linked list next pointers, track, by the processor, when removed portions of the hierarchical data structure are no longer referenced by use of a combination of a global state value and a copied local state value; wherein; the global state value transitions through a non-repeating sequence of values; no longer referenced portions of the hierarchical data structure are tagged with the current global state value; and the hierarchical data structure comprises a mutable tier including extendible hashing, a hash table, and an immutable tier including a concise hash table (CHT) bitmap. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a data structure processor configured for performing concurrent read and write operations into a hierarchical data structure, and track when removed portions of the hierarchical data structure are no longer referenced by use of a combination of a global state value and a copied local state value, wherein writers acquire latches on the hierarchical data structure elements that the writers modify, and the hierarchical data structure elements are directly accessed by readers without acquiring latches; and a thread processor configured for executing a modify operation by a writer for one or more levels of the hierarchical data structure, wherein the modify operation comprises performing a lookup into a parent node for determining a child node to modify, the child node including a linked list, and the modify inserts new entries to the linked list by atomically modifying linked list next pointers, wherein; the global state value transitions through a non-repeating sequence of values; no longer referenced portions of the hierarchical data structure are tagged with the current global state value; and the hierarchical data structure comprises a mutable tier including extendible hashing, a hash table, and an immutable tier including a concise hash table (CHT) bitmap. - View Dependent Claims (18, 19, 20)
-
Specification