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