Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2000-01-28
2004-06-15
Vu, Kim (Department: 2172)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000, C707S793000, C707S793000, C707S793000
Reexamination Certificate
active
06751616
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to managing overlapping requests for resources on a computer system using locks, and more particularly to techniques to speed reconfiguration of locks among nodes of a distributed lock manager (DLM).
BACKGROUND OF THE INVENTION
Computer systems are used to process data and control devices. A computer system resource is a portion of memory or a device utilized by the computer system. When several processes running simultaneously on a computer system share a resource there may be contention for that shared resource during overlapping periods of time. In such a situation a computer system management process must accumulate requests for the resource and grant them as the resource becomes available to the requesting processes. Consequently, mechanisms have been developed which control access to resources.
For example, database servers are processes that use resources while executing database transactions. Even though resources may be shared between database servers, many resources may not be accessed in certain ways by more than one process at any given time. More specifically, resources such as data blocks of a storage medium or tables stored on a storage medium may be concurrently accessed in some ways (e.g. read) by multiple processes, but accessed in other ways (e.g. written to) by only one process at a time.
One mechanism for controlling access to resources is referred to as a lock. A lock is a data structure that indicates that a particular process has been granted certain rights with respect to a resource. There are many types of locks. Some types of locks may be shared on the same resource by many processes; while other types of locks prevent any other locks from being granted on the same resource.
The entity responsible for granting locks on resources is referred to as a lock manager. In a single node computer system, a lock manager will typically consist of one or more processes on the node. In a multiple-node system, such as a multi-processing machine or a local area network, a lock manager may include processes distributed over numerous nodes. A lock manager that includes components that reside on two or more nodes is referred to as a distributed lock manager (DLM).
FIG. 1
 is a block diagram of a computer system 
100
. A computer system 
100
 typically includes at least one processor 
104
, an internal communications bus 
102
 and a fast but volatile main memory 
106
. More permanent storage is provided by a read only memory (ROM) 
108
 and one or more non-volatile storage devices 
110
. In modem distributed computer systems, the computer system 
100
 is connected via a network link 
120
 to a local network 
122
 and one or more other computer systems such as host 
124
. The computer system can also be connected to the internet 
128
 either directly or through an internet service provider (ISP) 
126
. Over the internet, the computer system 
100
 can communicate with one or more other computer systems such as server 
130
.
FIG. 2
 is a block diagram of a multiple-node computer system 
200
 which utilizes a conventional distributed lock manager for a distributed database. Each node has stored therein a database server and a portion of a distributed lock management system 
296
. Specifically, the illustrated system includes four nodes 
202
, 
212
, 
222
 and 
232
 on which reside database servers 
204
, 
214
, 
224
 and 
234
, respectively, and lock manager units 
206
, 
216
, 
226
 and 
236
, respectively. Database servers 
204
, 
214
, 
224
 and 
234
 have access to the same database 
260
. The database 
260
 resides on a disk 
250
 that contains multiple blocks of data. Disk 
250
 generally represents one or more persistent storage devices which may be on any number of machines, including but not limited to the machines that contain nodes 
202
, 
212
, 
222
 and 
232
.
A communication mechanism 
270
 allows processes on nodes 
202
, 
212
, and 
222
 to communicate with each other and with the disks that contain portions of database 
260
. The specific communication mechanism 
270
 between the nodes and disk 
250
 will vary based on the nature of system 
200
. For example, if the nodes 
202
, 
212
, 
222
 and 
232
 correspond to workstations on a network, the communication mechanism 
270
 will be different than if the nodes 
202
, 
212
, 
222
 and 
232
 correspond to clusters of processors and memory within a multi-processing machine.
Before any of database servers 
204
, 
214
, 
224
 and 
234
 can access a resource shared with the other database servers, it must obtain the appropriate lock on the resource from the distributed lock management system 
296
. The resource may be part of the database, like resource 
261
 which may be, for example, one or more blocks of disk 
250
 on which data from database 
260
 is stored. The resource may be on a particular piece of equipment 
270
. For example, the device resource 
271
 may be a print buffer on a printer or a scan register on a scanner.
Distributed lock management system 
296
 stores data structures, herein called resource locking objects (RLO), such as master RLO 
208
 and shadow RLO 
209
 on node 
202
, that indicate the locks held by database servers 
204
, 
214
, 
224
 and 
234
 on the resources shared by the database servers. If one database server requests a lock on a resource while another database server has a lock on the resource, the distributed lock management system 
296
 must determine whether the requested lock is consistent with the granted lock, i.e., can be granted simultaneously with the lock already granted, as in the case of two read locks on a block of storage currently residing in memory. If the requested lock is not consistent with the granted lock, such as when both are exclusive locks for the same resource, as is typical during writes to a database, then the requester must wait until the database server holding the granted lock releases the granted lock.
According to one conventional approach, a lock management system 
296
 includes one lock manager unit for each node that contains a database server and maintains one master resource locking object (RLO) for every resource managed by the lock management system 
296
. The master RLO for a particular resource stores, among other things, an indication of all locks that have been granted on or requested for the particular resource. The master RLO for each resource resides with only one of the lock manager units 
206
, 
216
, 
226
 and 
236
. For example, the master RLO for resource 
261
 resides with only one of the lock manager units, such as master RLO 
238
 residing with lock manager unit 
236
.
A node is referred to as the “master node” (or simply “master”) of the resources whose master RLOs are managed by the lock manager unit that resides on the node. In the above example, the master RLO 
238
 for resource 
261
 is managed by lock manager unit 
236
, so node 
232
 is the master of resource 
261
.
In typical systems, a hash function is employed to randomly select the particular node that acts as the master node for a given resource. For example, system 
200
 includes four nodes, and therefore may employ a hash function that produces four values: 0, 1, 2 and 3, or four ranges of values 0-5, 6-10, 11-15 and 16-20. Each value, or range, is associated with one of the four nodes. The node that will serve as the master for a particular resource in system 
200
 is determined by applying the hash function to the name of the resource. For example, using the hash value ranges, all resources that have names that hash to 0-5 are mastered on node 
202
; all resources that have names that hash to 6-10 are mastered on node 
212
; etc. In this example, the resource name of resource 
261
 supplied as input to a hash function produces a value, e.g., 17, in the range 16-20 and is thus mastered on node 
232
.
When a process on a node attempts to access a resource the same hash function is applied to the name of the resource to determine the master of the resource, and a lock request is sent to the master node for
Henkhaus John D.
Hickman Brian D.
Hickman Palermo Troung & Becker LLP
Oracle International Corp.
Truong Cam-Y
LandOfFree
Techniques for DLM optimization with re-mapping... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Techniques for DLM optimization with re-mapping..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Techniques for DLM optimization with re-mapping... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3309024