Computer-implemented systems for resource level locking without resource level locks
First Claim
Patent Images
1. A computer-implemented method, comprising:
- receiving multiple requests for access to a resource when the resource is being accessed, wherein each of the received requests is generated by a different requesting thread, and wherein a request for access includes a request for read, write or mutex access to the resource;
dynamically forming a resource queue which orders the multiple requesting threads using a linked list structure, wherein dynamically forming the resource queue includes temporarily locking the resource queue; and
providing requesting threads with synchronized access to the resource, wherein synchronized access is provided to the requesting threads ordered by the resource queue, wherein providing is performed using the linked list structure and without activating an operating system lock associated with the resource, and wherein providing synchronized access further includes;
providing simultaneous read access to multiple requesting threads, wherein providing simultaneous read access includes updating the resource queue by removing the multiple requesting threads to which read access is provided; and
providing exclusive access to the resource, wherein the exclusive access to the resource is provided to a thread that is associated with a received request for write access to the resource.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer-implemented systems and methods regulate access to a plurality of resources in a pool of resources without requiring individual locks associated with each resource. Access to one of the plurality of resources is requested, where a resource queue for managing threads waiting to access a resource is associated with each of the plurality of resources. A resource queue lock associated with the resource is acquired, where a resource queue lock is associated with multiple resources.
-
Citations
51 Claims
-
1. A computer-implemented method, comprising:
-
receiving multiple requests for access to a resource when the resource is being accessed, wherein each of the received requests is generated by a different requesting thread, and wherein a request for access includes a request for read, write or mutex access to the resource; dynamically forming a resource queue which orders the multiple requesting threads using a linked list structure, wherein dynamically forming the resource queue includes temporarily locking the resource queue; and providing requesting threads with synchronized access to the resource, wherein synchronized access is provided to the requesting threads ordered by the resource queue, wherein providing is performed using the linked list structure and without activating an operating system lock associated with the resource, and wherein providing synchronized access further includes; providing simultaneous read access to multiple requesting threads, wherein providing simultaneous read access includes updating the resource queue by removing the multiple requesting threads to which read access is provided; and providing exclusive access to the resource, wherein the exclusive access to the resource is provided to a thread that is associated with a received request for write access to the resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system, comprising:
-
one or more processors; one or more non-transitory computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including; receiving multiple requests for access to a resource when the resource is being accessed, wherein each of the received requests is generated by a different requesting thread, and wherein a request for access includes a request for read, write or mutex access to the resource; dynamically forming a resource queue which orders the multiple requesting threads using a linked list structure, wherein dynamically forming the resource queue includes temporarily locking the resource queue; and providing requesting threads with synchronized access to the resource, wherein synchronized access is provided to the requesting threads ordered by the resource queue, wherein providing is performed using the linked list structure and without activating an operating system lock associated with the resource, and wherein providing synchronized access further includes; providing simultaneous read access to multiple requesting threads, wherein providing simultaneous read access includes updating the resource queue by removing the multiple requesting threads to which read access is provided; and providing exclusive access to the resource, wherein the exclusive access to the resource is provided to a thread that is associated with a received request for write access to the resource. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-program product, tangibly embodied in a machine-readable non-transitory storage medium, including instructions configured to cause a data processing apparatus to perform operations including:
-
receiving multiple requests for access to a resource when the resource is being accessed, wherein each of the received requests is generated by a different requesting thread, and wherein a request for access includes a request for read, write or mutex access to the resource; dynamically forming a resource queue which orders the multiple requesting threads using a linked list structure, wherein dynamically forming the resource queue includes temporarily locking the resource queue; and providing requesting threads with synchronized access to the resource, wherein synchronized access is provided to the requesting threads ordered by the resource queue, wherein providing is performed using the linked list structure and without activating an operating system lock associated with the resource, and wherein providing synchronized access further includes; providing simultaneous read access to multiple requesting threads, wherein providing simultaneous read access includes updating the resource queue by removing the multiple requesting threads to which read access is provided; and providing exclusive access to the resource, wherein the exclusive access to the resource is provided to a thread that is associated with a received request for write access to the resource. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
Specification