Access control for groups of related data items

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06226641

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to controlling access to groups of related data items stored in the memory of a multiprocessing computer system in which multiple processes may independently access individual data items. In particular, the invention relates to locking techniques for controlling such access.
BACKGROUND OF THE INVENTION
As used herein, the term “multiprocessing” should be understood to include not only computer systems having distinct independent multiple processors but also so-called “multi-threading” systems in which independent process threads can exist concurrently. The term “process” includes any application program.
Wherever multiple processes have access to shared data, it is well known that access restrictions are necessary to prevent unwanted overwriting by one process or application of data items which another application may be in the process of using. The object is to achieve serialisation, that is that the result of processing for any application should be the same as if it had had sole access to the data items and had processed them serially. Such restrictions are commonly achieved by locking data items so that other applications cannot access them at all (exclusive locks) or so that other applications can only access them for a non-destructive purpose such as reading their contents (shared locks).
Very sophisticated locking arrangements are used in database products where many users have access to the shared data in the data base. One form of database is hierarchical, such as the IMS product from IBM (“IMS” and “IBM” are trademarks of International Business Machines Corporation). In such a database, it is known that not only can individual items be locked but that also that locking of a top layer item in the hierarchy can be used to lock all subordinate segments depending from the top layer item.
Often, database managers employ index trees of keys to individual data items to speed up searching for those items and these index trees can be used as the basis for locking. The trees consist of root, branch and leaf nodes (which are pointers to the actual data items). Not only can individual leaf nodes be locked but also their parent nodes (branch nodes or even root nodes). If a branch or root node is locked then all its child nodes are also locked.
U.S. Pat. No. 5,485,607 “Concurrency control method and apparatus in a database management system utilizing key-valued locking”, describes a system in which keys, rather than actual data items, are used for locking and mentions a concept known as “range-locking” where not only are individual key values locked but also ranges of keys, including the individual keys of interest are also locked.
In data bases, the data may be changed relatively infrequently and is usually read non-destructively. However, the need for locking arises in other types of system as well, however. One type of system in which locking has been practised is a message queuing system, such as IBM's MQSeries family of products (the term “MQSeries” is a trademark of International Business Machines Corporation). In message queuing systems, communication between programs residing on different nodes of a network is by means of queues onto which the programs put messages or from which they get messages for use by other programs. Management of these queues is under control of a queue manager.
Because queues may, in general, be accessible to more than one application, MQSeries products need to be able to lock messages on queues in order to ensure their integrity. This is particularly so as the MQSeries “GET” operation is normally destructive of the message as the whole purpose is to allow applications to remove the message from the queue for processing after which its retention on the queue serves no purpose.
In a recent extension of MQSeries, it has been recognised that groups of messages may be logically related or that very large messages, which are too large for the system buffers may have to be segmented into a group of related segments. This concept is described in the “MQSeries Application Programming Guide” (SC33-0807-07, Eighth Edition, August 1997), available from IBM. However, a problem has arisen in that locking of an individual message in a group or of a segment in a segmented message will not necessarily prevent other applications removing the related messages or segments before a requesting application has had a chance to process them. As such messages are in an unstructured peer group and are not hierarchically arranged or within quantifiable ranges, the prior art locking techniques cannot provide an effective locking option for the group.
SUMMARY OF THE INVENTION
Accordingly, the present invention provides a method of controlling access to an unstructured group of related data items stored in the memory of a multiprocessing computer system in which multiple processes may independently access individual data items to perform operations thereon, comprising the steps of: accessing an individual data item as part of a process; determining that said item is part of a group of related items; locking said group of related items by marking the whole group as locked and returning a locking key to said process such that further access to any item of said group is prevented except on provision of said key, said locking of said group occurring in response to the accessing of any one of said individual items in that group.
The invention offers a locking technique which is applicable to unstructured groups or peer groups of logically related items as may occur, for example, in a queue of messages and does not depend on the items being arranged hierarchically or in an ordered quantifiable sequence. Locking of the items does not require them to be accessible by way of an index tree of key values pointing to the items.
Preferably, the group has a shared data structure and said locking step comprises setting a group locked flag in said group data structure, said further access to the individual data items of the group including the step of checking whether said group locked flag is set or not.
It is preferred that the locking key should be stored in the group data structure for comparison with the key provided in further access requests. However, it could instead be stored in any convenient area of memory.
The preferred locking method is to individually mark said first accessed data item as locked and to generate the shared locking key in response to locking of the first accessed data item. The key is then passed to the group data structure. It is not absolutely necessary, however, that the first accessed data item should be individually marked as locked if the group structure is marked.
The invention finds particular utility where the group of related data items are held in a queue. A preferred feature of the invention in this case is that the locking key include a sequence number indicating the order in which the first accessed data item was put on the queue. Where the invention is applied to a computer system which includes a message queuing system in which the data items are messages put onto such queues and taken from queues in response to execution of process instructions of said multiple processes, the locking steps are preferably part of a browse operation to access the messages non-destructively.
In such a system where a message queue is opened by a process, the process preferably returns a handle which must be used in subsequent accesses of the queue, the locking key being associated with said handle.
The invention also provides an access control system for controlling access to related groups of data items in a multiprocessing computer system, according to the above method.


REFERENCES:
patent: 5355477 (1994-10-01), Strickland
patent: 5485607 (1996-01-01), Lomet et al.
patent: 5566319 (1996-10-01), Lenz
patent: 92107592 (1993-11-01), None
“MQSeries Application Programming Guide” SC33-O807, Eighth edition (Aug. 1997), pp. 34-35.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Access control for groups of related data items does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Access control for groups of related data items, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Access control for groups of related data items will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2548494

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.