← Back to Patent Explorer
US5319780A Expired / Lapsed US ⏱️ 0.0 years remaining

System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued

Assignee: International Business Machines Corp
•
Filing: 1993-05-03
•
Granted: 1994-06-07
•
Expires: 2013-05-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multi-user system for managing a database, and comprising a file access processor and a plurality of application support processors. The file access processor is provided to access the database, and the support processors are connected to the file access processor to read and update data objects in the database. The file access processor includes a locking system to lock data objects for selected support processors to limit access to locked data objects by the other support processors. This locking system includes an implicit locking subsystem to place implicit locks on data objects automatically in response to receiving processing requests from the support processors, and an explicit locking subsystem to place explicit locks on data objects in response to receiving explicit locking requests from the support processors. The explicit locks are integrated into the locking scheme in a manner minimizing lock conflicts.

Inventors

  • 👤 Robert J. Catino
  • 👤 Tom K. Chan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 08:55
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 491 words
A multi-user system for managing a database having a multitude of data objects arranged in a hierarchy, said system comprising: a file access processor for accessing the database and managing requests relating to said data objects; a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update a specified first data object and an explicit request for one of a plurality of explicit locks on said first data object pursuant to said read and/or update request, and a request to read and/or update a specified second data object without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to the explicit request for said explicit lock on said first data object, for providing said explicit lock only on said first data object, and means, responsive to the request to read and/or update said second data object without explicitly requesting an explicit lock on any of the data objects, for providing one of a plurality of implicitly locks on said second data object and all other data objects which descend from a same node as said second data object in said hierarchy; and said file access processor includes means, responsive to another request to read or update a specific data object pursuant to an associated explicit lock, for determining if a conflict exists with any previously established explicit or implicit lock; and wherein said plurality of explicit locks comprise an explicit exclusive lock in which the requesting application support processor has exclusive read and update access to said first data object and the other application support processors are denied all access to and all locks on said first data object, an explicit update lock in which a requesting application support processor has read and update access to said first data object and another application support processor can obtain an implicit share lock on said first data object, and an explicit share lock in which a requesting application support processor has read access to said first data object and all of the other application support processors have read access to said first data object but cannot obtain exclusive access to or an explicit update lock, explicit exclusive lock or implicit exclusive lock on said first data object; and said plurality of implicit locks comprise an implicit exclusive lock on said second data object in which the other application support processors are denied all access to and all explicit and implicit locks on said second data object, and an implicit share lock on said second data object in which the other application support processors can obtain an explicit share lock, an explicit update lock and an implicit share lock on said second data object but are denied an explicit exclusive lock and an implicit exclusive lock on said second data object.
Claim 2
Dependent Claim 491 words
A multi-user system for managing a database having a multitude of data objects arranged in a hierarchy, said system comprising: a file access processor for accessing the database and managing requests relating to said data objects; a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update a specified first data object and an explicit request for one of a plurality of explicit locks on said first data object pursuant to said read and/or update request, and a request to read and/or update a specified second data object without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to the explicit request for said explicit lock on said first data object, for providing said explicit lock only on said first data object, and means, responsive to the request to read and/or update said second data object without explicitly requesting an explicit lock on any of the data objects, for providing one of a plurality of implicitly locks on said second data object and all other data objects which descend from a same node as said second data object in said hierarchy; and said file access processor includes means, responsive to another request to read or update a specific data object pursuant to an associated explicit lock, for determining if a conflict exists with any previously established explicit or implicit lock; and wherein said plurality of explicit locks comprise an explicit exclusive lock in which the requesting application support processor has exclusive read and update access to said first data object and the other application support processors are denied all access to and all locks on said first data object, an explicit update lock in which a requesting application support processor has read and update access to said first data object and another application support processor can obtain an implicit share lock on said first data object, and an explicit share lock in which a requesting application support processor has read access to said first data object and all of the other application support processors have read access to said first data object but cannot obtain exclusive access to or an explicit update lock, explicit exclusive lock or implicit exclusive lock on said first data object; and said plurality of implicit locks comprise an implicit exclusive lock on said second data object in which the other application support processors are denied all access to and all explicit and implicit locks on said second data object, and an implicit share lock on said second data object in which the other application support processors can obtain an explicit share lock, an explicit update lock and an implicit share lock on said second data object but are denied an explicit exclusive lock and an implicit exclusive lock on said second data object.
Claim 3
Dependent Claim 83 words
A system as set forth in claim 1 wherein said plurality of implicit locks also comprise an intent exclusive lock in which the requesting application support processor has the option of later obtaining an implicit exclusive lock in place of the intent exclusive lock on said second data object, and an intent share lock in which the requesting application support processor has the option of later obtaining an implicit share lock in place of the intent share lock on said second data object.
Claim 4
Dependent Claim 134 words
A system as set forth in claim 2 wherein the means for determining if a conflict exists determines the conflicts as indicated by the following compatability chart in which a "Y" in any position indicates compatibility between the corresponding locks, and an "N" in any position indicates a conflict between the corresponding locks: __________________________________________________________________________ Explicit Explicit Explicit Intent Intent Implicit Implicit Share Update Exclusive Share Exclusive Share Exclusive __________________________________________________________________________ Explicit Y N N Y N Y N Share Explicit N N N Y N Y N Update Explicit N N N N N N N Exclusive Intent Y Y N Y Y Y N Share Intent N N N Y Y N N Exclusive Implicit Y Y N Y N Y N Share Implicit N N N N N N N [Share] Exclusive __________________________________________________________________________
Claim 5
Independent Claim 366 words
A system for managing a shared, hierarchical database having a multitude of data objects at a low level in the hierarchy and a plurality of nodes at a higher level in the hierarchy, each of said nodes encompassing a plurality of said data objects, said system comprising: file access processor means for managing access to the data base; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor means a request to read and/or update any one of said data objects, said request specifying said any one of said data objects and explicitly requesting one of a plurality of explicit locks on said any one of said data objects for said request, and a request to read and/or update any one of said data objects without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor means responds to a first request to update a first one of said data objects encompassed by a first node and an explicit request for one of a plurality of explicit locks on said first data object, by providing said explicit lock on said first data object but not on a second data object encompassed by said first node; said file access processor means responds to a second request to update said second data object and an explicit request for one of a plurality of explicit locks on said second data object, by providing said explicit lock an said second data object but not on said first data object; said file access processor means responds to a third request to update a third one of said data objects encompassed by said second node without explicitly requesting an explicit lock on any of said data objects or nodes, by providing one of a plurality of implicit locks on said second node and all data objects encompassed by said second node; and said file access processor means can concurrently provide said locks on said first and second data objects and all data objects encompassed by said second node pursuant to said first, second and third requests, respectively.
Claim 6
Independent Claim 366 words
A system for managing a shared, hierarchical database having a multitude of data objects at a low level in the hierarchy and a plurality of nodes at a higher level in the hierarchy, each of said nodes encompassing a plurality of said data objects, said system comprising: file access processor means for managing access to the data base; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor means a request to read and/or update any one of said data objects, said request specifying said any one of said data objects and explicitly requesting one of a plurality of explicit locks on said any one of said data objects for said request, and a request to read and/or update any one of said data objects without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor means responds to a first request to update a first one of said data objects encompassed by a first node and an explicit request for one of a plurality of explicit locks on said first data object, by providing said explicit lock on said first data object but not on a second data object encompassed by said first node; said file access processor means responds to a second request to update said second data object and an explicit request for one of a plurality of explicit locks on said second data object, by providing said explicit lock an said second data object but not on said first data object; said file access processor means responds to a third request to update a third one of said data objects encompassed by said second node without explicitly requesting an explicit lock on any of said data objects or nodes, by providing one of a plurality of implicit locks on said second node and all data objects encompassed by said second node; and said file access processor means can concurrently provide said locks on said first and second data objects and all data objects encompassed by said second node pursuant to said first, second and third requests, respectively.
Claim 7
Dependent Claim 24 words
A system as set forth in claim 4 wherein said file access processor means removes said implicit lock after said third request is satisfied.
Claim 8
Dependent Claim 81 words
A system as set forth in claim 5 wherein while said implicit lock exists, said file access processor means responds to a fourth request to update a fourth one of said data objects encompassed by said second node and an explicit request for an exclusive lock on said fourth data object, by determining that said explicit exclusive lock is not compatible with said implicit lock and rejecting said fourth request or holding said fourth request until said implicit lock is removed.
Claim 9
Dependent Claim 23 words
A system as set forth in claim 4 wherein said first, second and third requests all request update of the respective data objects.
Claim 10
Independent Claim 325 words
A system for managing a shared, hierarchical database having a multiplicity of data objects at a low level in the hierarchy and a plurality of nodes at a higher level in the hierarchy, each of said nodes encompassing a plurality of said data objects, said system comprising: a file access processor for managing access to the data base; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update any one of said data objects, said request specifying said any one of said data objects and explicitly requesting one of a plurality of types of explicit locks on said any one of said data objects for said request, and a request to read and/or update another one of said data objects without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to each explicit request for a type of explicit lock on a specific data object, for determining if said explicit lock is compatible with other extant explicit and implicit locks on said specific data object, and if so, providing said explicit lock for said specific data object, said explicit lock being limited to said specific data object; and said file access processor includes means, responsive to a request to read and/or update a specific one of said data objects encompassed by a node without explicitly requesting an explicit lock on any of said data objects or nodes, for determining if a type of implicit lock, corresponding to the type of request, on said node and all data objects encompassed by said node is compatible with other extent explicit and implicit locks on said node or any data objects encompassed by said node, and if so, providing said implicit lock on said node and all data objects encompassed by said node.
Claim 11
Independent Claim 325 words
A system for managing a shared, hierarchical database having a multiplicity of data objects at a low level in the hierarchy and a plurality of nodes at a higher level in the hierarchy, each of said nodes encompassing a plurality of said data objects, said system comprising: a file access processor for managing access to the data base; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update any one of said data objects, said request specifying said any one of said data objects and explicitly requesting one of a plurality of types of explicit locks on said any one of said data objects for said request, and a request to read and/or update another one of said data objects without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to each explicit request for a type of explicit lock on a specific data object, for determining if said explicit lock is compatible with other extant explicit and implicit locks on said specific data object, and if so, providing said explicit lock for said specific data object, said explicit lock being limited to said specific data object; and said file access processor includes means, responsive to a request to read and/or update a specific one of said data objects encompassed by a node without explicitly requesting an explicit lock on any of said data objects or nodes, for determining if a type of implicit lock, corresponding to the type of request, on said node and all data objects encompassed by said node is compatible with other extent explicit and implicit locks on said node or any data objects encompassed by said node, and if so, providing said implicit lock on said node and all data objects encompassed by said node.
Claim 12
Dependent Claim 67 words
A system as set forth in claim 8 wherein: said file access processor means determines compatibility based on the types of extant locks on a data object sought to be locked pursuant to a current request and the type of lock required for said object pursuant to said current request; and said file access processor means can concurrently provide plural compatible locks on a single data object.
Claim 13
Dependent Claim 215 words
A multi-user system for managing a database having a multitude of data objects arranged in a hierarchy, said system comprising: a file access processor for accessing the database and managing requests relating to said data objects; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update a specified first data object and an explicit request for one of a plurality of explicit locks on said first data object pursuant to said read and/or update request and a request to read and/or update a specified second data object without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to the explicit request for said explicit lock on said first data object, for providing said explicit lock only on said first data object, and means, responsive to the request to read and/or update said second data object without explicitly requesting an explicit lock on any of the data objects, for providing one of a plurality of implicit locks on said second data object and all other data objects which descend from a same node as said second data object in said hierarchy.
Claim 14
Dependent Claim 215 words
A multi-user system for managing a database having a multitude of data objects arranged in a hierarchy, said system comprising: a file access processor for accessing the database and managing requests relating to said data objects; and a plurality of application support processors coupled to the file access processor, each of said application support processors including means for transmitting to said file access processor a request to read and/or update a specified first data object and an explicit request for one of a plurality of explicit locks on said first data object pursuant to said read and/or update request and a request to read and/or update a specified second data object without explicitly requesting an explicit lock on any of said data objects; and wherein said file access processor includes means, responsive to the explicit request for said explicit lock on said first data object, for providing said explicit lock only on said first data object, and means, responsive to the request to read and/or update said second data object without explicitly requesting an explicit lock on any of the data objects, for providing one of a plurality of implicit locks on said second data object and all other data objects which descend from a same node as said second data object in said hierarchy.
Claim 15
Dependent Claim 51 words
A system as set forth in claim 10 wherein said file access processor includes means, responsive to each request to read or update a specific data object with or without an explicit request for an explicit lock, for determining if a conflict exists with any previously established explicit or implicit lock.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-06-06 1997-12-06 1998-06-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-06-06 2001-12-06 2002-06-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-06-06 2005-12-06 2006-06-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag