Methods and apparatus for sharing stored data objects in a computer system
First Claim
1. In a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, an apparatus for preventing access conflicts, said access conflicts arise when more than one of said multiple threads were allowed to simultaneously access one of said first plurality of stored data object, comprising:
- a dynamic lock structure having a plurality of dynamic lock structure members that each include a physical lock, said plurality of dynamic lock structure members being fewer in number than a number of said first plurality of stored data objects, wherein a second plurality of stored data objects of said first plurality of stored data objects map into a first dynamic lock structure member of said plurality of dynamic lock structure members in accordance with a mapping function, said mapping function renders it likely that only one stored data object of said second plurality of stored data objects that maps into said first dynamic lock structure member is accessed at any given point in time by a thread of said multiple threads; and
storage facility associated with said first dynamic lock structure member for storing identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are currently being accessed, whereby a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, in a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, for preventing access conflicts. The method includes the step of providing a dynamic lock structure having a plurality of dynamic lock structure members. There is also the step of mapping a second plurality of stored data objects of the first plurality of stored data objects into a first dynamic lock structure member of the plurality of dynamic lock structure members in accordance with a mapping function. Due to the mapping function, the plurality of dynamic lock structure members become fewer in number than the number of the first plurality of stored data objects. The first dynamic lock structure member is configured to store identities of a third plurality of stored data objects. The third plurality of stored data objects represent a subset of the second plurality of stored data objects that are accessed, whereby a stored data object having its identity stored in the dynamic lock structure cannot be accessed by any thread other than a thread currently accessing the stored data object.
57 Citations
25 Claims
-
1. In a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, an apparatus for preventing access conflicts, said access conflicts arise when more than one of said multiple threads were allowed to simultaneously access one of said first plurality of stored data object, comprising:
-
a dynamic lock structure having a plurality of dynamic lock structure members that each include a physical lock, said plurality of dynamic lock structure members being fewer in number than a number of said first plurality of stored data objects, wherein a second plurality of stored data objects of said first plurality of stored data objects map into a first dynamic lock structure member of said plurality of dynamic lock structure members in accordance with a mapping function, said mapping function renders it likely that only one stored data object of said second plurality of stored data objects that maps into said first dynamic lock structure member is accessed at any given point in time by a thread of said multiple threads; and storage facility associated with said first dynamic lock structure member for storing identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are currently being accessed, whereby a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object. - View Dependent Claims (2, 3, 8)
-
- 4. The apparatus of 3 wherein said physical lock is configured to alternatively store an EMPTY flag if said dynamic list is empty, else said physical lock is configured to alternatively store a NOT-- EMPTY flag if said dynamic list stores identities of said at least two stored data objects.
-
9. In a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, a method for preventing access conflicts, said access conflicts arise when more than one of said multiple threads were allowed to simultaneously access one of said first plurality of stored data object, comprising:
-
providing a dynamic lock structure having a plurality of dynamic lock structure members, and each of said plurality of dynamic lock structures includes a physical lock that is configured to alternatively store an EMPTY flag if said dynamic list is empty, else said physical lock is configured to alternatively store a NOT-- EMPTY flag if said dynamic list stores identities of said at least two stored data objects; and mapping a second plurality of stored data objects of said first plurality of stored data objects into a first dynamic lock structure member of said plurality of dynamic lock structure members in accordance with a mapping function, thereby resulting in said plurality of dynamic lock structure members being fewer in number than a number of said first plurality of stored data objects, said first dynamic lock structure member being configured to store identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are accessed, whereby a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. In a computer system having a first plurality of stored data objects and capable of running a first thread and a second thread concurrently, a method for preventing an access conflict, said access conflict arises if said first and second threads were allowed to simultaneously access a first stored data object of said first plurality of stored data object, said computer system having a dynamic lock structure including a dynamic lock structure member, a second plurality of stored data objects of said first plurality of stored data objects, including said first stored data object being mapped into said first dynamic lock structure member, said first dynamic lock structure member being configured to store identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are accessed, whereby a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object, comprising:
facilitating an attempted access by said first thread to said first stored data object, including; if said dynamic lock structure member does not store any stored data object identity, storing an identity of said first stored data object into a physical lock portion of said dynamic lock structure; else if said dynamic lock structure member stores only one identity of a second stored data object in said physical lock portion, said second stored data object being different from said first stored data object, storing both said identity of said first stored data object and said identity of said second stored data object into a dynamic list portion of said dynamic lock structure and storing a first flag into said physical lock portion of said dynamic lock structure, said first flag indicating that said dynamic list is currently not empty; else if said dynamic lock structure member stores only one identity of a second stored data object, said second stored data object is the same as said first stored data object, rejecting said attempted access by said first thread to said first stored data object as failed; else if said physical lock stores said first flag indicating that said dynamic list is currently not empty, consulting said dynamic list to ascertain whether said identity of said first data object is already stored in said dynamic list, further including; rejecting said attempted access by said first thread to said first stored data object as failed if said dynamic list already stores said identity of said first data object; and else permitting said attempted access by said first thread to said first stored data object if said dynamic list has not already stored said identity of said first data object and storing said identity of said first stored data object into said dynamic list. - View Dependent Claims (17, 18, 19)
-
20. In a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, an apparatus for preventing access conflicts, said access conflicts arise when more than one of said multiple threads were allowed to simultaneously access one of said first plurality of stored data object, comprising:
-
a dynamic lock structure having a plurality of dynamic lock structure members, said plurality of dynamic lock structure members being fewer in number than a number of said first plurality of stored data objects, wherein a second plurality of stored data objects of said first plurality of stored data objects map into a first dynamic lock structure member of said plurality of dynamic lock structure members in accordance with a mapping function, said mapping function renders it likely that only one stored data object of said second plurality of stored data objects that maps into said first dynamic lock structure member is accessed at any given point in time by a thread of said multiple threads; and storage facility having a physical lock, a list lock flag and a dynamic list, said storage facility is associated with said first dynamic lock structure member and is configured to store identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are currently being accessed; wherein a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object. - View Dependent Claims (21, 22)
-
-
23. The apparatus of 22 wherein said physical lock is configured to alternatively store an EMPTY flag if said dynamic list is empty, else said physical lock is configured to alternatively store a NOT-- EMPTY flag if said dynamic list stores identities of said at least two stored data objects.
-
24. In a computer system having a first plurality of stored data objects and capable of running multiple threads concurrently, a method for preventing access conflicts, said access conflicts arise when more than one of said multiple threads were allowed to simultaneously access one of said first plurality of stored data object, comprising:
-
providing a dynamic lock structure having a plurality of dynamic lock structure members, where each of said plurality of dynamic lock structure members has a physical lock that is configured to store an identity of a first stored data object, said first stored data object representing the only one of said second plurality of stored data objects that is accessed; and mapping a second plurality of stored data objects of said first plurality of stored data objects into a first dynamic lock structure member of said plurality of dynamic lock structure members in accordance with a mapping function, thereby resulting in said plurality of dynamic lock structure members being fewer in number than a number of said first plurality of stored data objects, said first dynamic lock structure member being configured to store identities of a third plurality of stored data objects, said third plurality of stored data objects represents a subset of said second plurality of stored data objects that are accessed, wherein a stored data object having its identity stored in said dynamic lock structure cannot be accessed by any thread other than a thread currently accessing said stored data object. - View Dependent Claims (25)
-
Specification