Method and apparatus for managing a linked-list data structure
First Claim
1. A computer-implemented method of managing a linked-list data structure, the linked-list data structure including a first element, the first element comprising a first data portion and a first pointer portion, the method including:
- modifying the linked-list data structure;
updating the first pointer portion of the first element to reflect the modification to the linked-list data structure, the step of updating comprising an atomic operation; and
performing a first unsynchronized traversal of the linked-list data structure concurrently with the modification of the linked-list data structure, the first unsynchronized traversal comprising a mark and sweep garbage collection operation with respect to the linked-list data structure.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of managing a linked-list data structure is disclosed. The linked-list data structure has a number of elements, each of which includes a data item and a pointer to a sequentially following element. The method allows the modification of the linked-list data structure, either by the insertion or removal of element therefrom, while permitting a concurrent and unsynchronized traversal operations with respect to the linked-list data structure. Specifically, the method requires that the pointers of elements within the linked-list data structure be modified using an atomic operation to reflect any modifications made to the linked-list data structure. The utilization of atomic operations to update the pointers ensures that the unsynchronized traversal operations examine a valid data path.
-
Citations
22 Claims
-
1. A computer-implemented method of managing a linked-list data structure, the linked-list data structure including a first element, the first element comprising a first data portion and a first pointer portion, the method including:
-
modifying the linked-list data structure; updating the first pointer portion of the first element to reflect the modification to the linked-list data structure, the step of updating comprising an atomic operation; and performing a first unsynchronized traversal of the linked-list data structure concurrently with the modification of the linked-list data structure, the first unsynchronized traversal comprising a mark and sweep garbage collection operation with respect to the linked-list data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In an object-oriented programming environment, a linked-list object comprising:
-
a linked-list data structure including a plurality of elements, each element having a respective data portion and a pointer portion; a modifying method for modifying the linked-list data structure by the insertion or removal of a first element; an updating method for updating the pointer portion of a second element to reflect the modification to the linked-list data structure utilizing an atomic modify operation; and a traversal method for performing an unsynchronized traversal of the linked-list data structure concurrently with the modification of the linked-list data structure by the modifying method, the traversal method comprising a mark and sweep garbage collection method for performing an unsynchronized mark and sweep garbage collection operation with respect to the linked-list data structure.
-
-
9. A machine-readable medium including a sequence of instructions which, when executed by a machine, cause the machine to perform the steps of:
-
modifying a linked-list data structure, the linked-list data structure including a first element, the first element having a first data portion and a first pointer portion, by the insertion or removal of a second element, the second element having a second data portion and a second pointer portion; updating the first pointer portion of the first element to reflect the modification to the linked-list data structure, the step of updating comprising an atomic operation; and performing a first unsynchronized traversal of the linked-list data structure concurrently with the modification of the linked-list data structure, the first unsynchronized traversal comprising a mark and sweep garbage collection operation with respect to the linked-list data structure. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer-implemented method of managing a linked-list data structure, the linked-list data structure including an element comprising a data portion and a pointer portion, the method comprising:
-
performing a first operation with respect to the linked-list data structure; and performing an unsynchronized traversal, comprising a mark and sweep garbage collection operation, of the linked-list data structure concurrently with the first operation, wherein the unsynchronized traversal includes performing a read of the pointer portion of the element, and the read is performed as an atomic operation. - View Dependent Claims (16, 17)
-
-
18. A machine-readable medium comprising instructions which, when executed by a machine, cause the machine to perform the steps of:
-
performing a first operation with respect to the linked-list data structure, the linked-list data structure including an element having a data portion and a pointer portion; and performing an unsynchronized traversal, comprising a mark and sweep garbage collection operation, of the linked-list data structure concurrently with the first operation; wherein the unsynchronized traversal includes performing a read of the pointer portion of the element, and the read is performed as an atomic operation. - View Dependent Claims (19, 20)
-
-
21. A computer data signal embodied in a carrier wave and representing a sequence of instructions which, when executed by a machine, cause the machine to perform the steps of:
-
modifying a linked-list data structure, the linked-list data structure including a first element having data and pointer portions, by the insertion or removal of a second element; updating the pointer portion of a first element to reflect the modification to the linked-list data structure, the step of updating comprising an atomic operation; and performing a first unsynchronized traversal of the linked-list data structure concurrently with the modification of the linked-list data structure, the first unsynchronized traversal comprising a mark and sweep garbage collection operation with respect to the linked-list data structure.
-
-
22. A computer data signal embodied in a carrier wave and representing a sequence of instructions which, when executed by a machine, cause the machine to perform the steps of:
-
performing a first operation with respect to a linked-list data structures, the linked-list data structure including an element comprising a data portion and a pointer portion; and performing an unsynchronized traversal, comprising a mark and sweep garbage collection operation of, the linked-list data structure concurrently with the first operation; wherein the unsynchronized traversal includes performing a read of the pointer portion of the element, and the read is performed as an atomic operation.
-
Specification