US5644768A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Systems and methods for sharing resources in a multi-user environment
Assignee: Borland Software Corp
•
Filing: 1994-12-09
•
Granted: 1997-07-01
•
Expires: 2014-12-09
Abstract
Abstract Multi-user system includes a server connected to one or more workstations or "clients" through a computer network. System provides concurrent access to shared resources (e.g., common data structures residing on the server), but without the disadvantage attendant with conventional mutual exclusive (mutex) primitives. Specifically, the system provides a "nested mutex" mechanism, so that user program code can acquire and release mutexes without concern for deadlocking and without special processing for testing a particular mutex condition or state. At the same time, the system prevents other threads or processes from accessing the shared resource in a manner which would violate concurrency.
Inventors
- 👤 Damodar Das Periwal
- 👤 Manish Maheshwari
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 18:15
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
125 words
A client-server database system comprising: a database server storing a database; a database engine for performing database operations on said database in response to requests from clients, said database engine including an interface for receiving said requests; at least one stored procedure, operably coupled to said database engine, for invoking a pre-defined sequence of operations of the database engine, said at least one stored procedure having a data object shared concurrently by said clients; and a surrogate mutex for providing nested mutual exclusive access of said data object to a particular client in response to multiple, nested requests by said particular client for mutual exclusive access, said surrogate mutex encapsulating a system mutex from an operating system which does not support nested mutual exclusive access.
Claim 2
Dependent Claim
125 words
A client-server database system comprising: a database server storing a database; a database engine for performing database operations on said database in response to requests from clients, said database engine including an interface for receiving said requests; at least one stored procedure, operably coupled to said database engine, for invoking a pre-defined sequence of operations of the database engine, said at least one stored procedure having a data object shared concurrently by said clients; and a surrogate mutex for providing nested mutual exclusive access of said data object to a particular client in response to multiple, nested requests by said particular client for mutual exclusive access, said surrogate mutex encapsulating a system mutex from an operating system which does not support nested mutual exclusive access.
Claim 3
Dependent Claim
62 words
The system of claim 1, wherein said surrogate mutex comprises a record describing access to said data object, said record having an identifier field for storing an identity of said particular client, an identifier for said system mutex from an operating system, and having a count field for storing how many times said particular client has requested access to said data object.
Claim 4
Dependent Claim
43 words
The system of claim 2, further comprising a means for storing a value of 1 in said count field and granting said particular client access to said data object if said identifier field indicates no client is requesting access to said data object.
Claim 5
Dependent Claim
42 words
The system of claim 2, further comprising a means for placing said particular client in a sleep state until said identifier field indicates no other client has access to said data object if said identifier field does not specify said particular client.
Claim 6
Dependent Claim
22 words
The system of claim 2, further comprising a means for incrementing said count field if said identifier field specifies said particular client.
Claim 7
Dependent Claim
26 words
The system of claim 2, further comprising a means for decrementing said count field when said particular client finishes a requested access to said data object.
Claim 8
Dependent Claim
24 words
The system of claim 2, further comprising a means for allowing another client to access said data object once said count field reaches zero.
Claim 9
Dependent Claim
17 words
The system of claim 1, further comprising a table for maintaining said at least one stored procedure.
Claim 10
Dependent Claim
288 words
In a client-server database system including a server maintaining a database and a plurality of clients, a method for providing nested mutual exclusive access to a data object specified by a shared stored procedure, said shared stored procedure comprising user-specified data manipulation statements for instructing said server to perform a predefined sequence of operations on said database, the method comprising the steps of: allocating within storage a surrogate mutex including a record describing access to a data object specified by said shared stored procedure and shared concurrently by said plurality of clients, said record having an identifier field for storing an identity of a client, having a mutex field for accessing a system mutex from an operating system that does not allow nested mutual exclusive access, and having a count field for storing how many times said client has requested access to said data object; receiving at least one request from a particular client to access said data object; and for each said at least one request from said particular client to access said data object, performing one of the following: storing an identity of said particular client in said identifier field, storing a pointer to a system mutex that does not allow nested mutual exclusive access in said mutex field, storing a value of 1 in said count field, and granting said particular client access to said data object if said identifier field indicates no client has access to said data object, placing said particular client in a sleep state until said identifier field indicates no other client has access to said data object if said identifier field does not specify said particular client, and incrementing said count field if said identifier field specifies said particular client.
Claim 11
Dependent Claim
288 words
In a client-server database system including a server maintaining a database and a plurality of clients, a method for providing nested mutual exclusive access to a data object specified by a shared stored procedure, said shared stored procedure comprising user-specified data manipulation statements for instructing said server to perform a predefined sequence of operations on said database, the method comprising the steps of: allocating within storage a surrogate mutex including a record describing access to a data object specified by said shared stored procedure and shared concurrently by said plurality of clients, said record having an identifier field for storing an identity of a client, having a mutex field for accessing a system mutex from an operating system that does not allow nested mutual exclusive access, and having a count field for storing how many times said client has requested access to said data object; receiving at least one request from a particular client to access said data object; and for each said at least one request from said particular client to access said data object, performing one of the following: storing an identity of said particular client in said identifier field, storing a pointer to a system mutex that does not allow nested mutual exclusive access in said mutex field, storing a value of 1 in said count field, and granting said particular client access to said data object if said identifier field indicates no client has access to said data object, placing said particular client in a sleep state until said identifier field indicates no other client has access to said data object if said identifier field does not specify said particular client, and incrementing said count field if said identifier field specifies said particular client.
Claim 12
Dependent Claim
31 words
The method of claim 9, wherein said particular client requests access to said data object a plurality of times so that said particular client has nested access to said data object.
Claim 13
Dependent Claim
26 words
The method of claim 9, further comprising the step of decrementing said count field when said particular client finishes a requested access to said data object.
Claim 14
Dependent Claim
24 words
The method of claim 11, further comprising the step of allowing another client to access said data object once said count field reaches zero.
Claim 15
Dependent Claim
33 words
The method of claim 11, further comprising the step of storing a blank value in said identifier field indicating no client has access to said data object when said count field reaches zero.
Claim 16
Dependent Claim
31 words
The method of claim 9, further comprising the step of initializing said record by storing a blank value in said identifier field and storing a blank value in said count field.
Claim 17
Dependent Claim
20 words
The method of claim 13, wherein said blank value in said identifier field has a numeric value equal to 0.
Claim 18
Dependent Claim
20 words
The method of claim 13, wherein said blank value in said count field has a numeric value equal to 0.
Claim 19
Dependent Claim
16 words
The method of claim 9, wherein said identifier field stores an ID provided by said system.
Claim 20
Dependent Claim
31 words
The method of claim 9, further comprising the steps of: obtaining said system mutex from said system; and providing mutual exclusive access to said shared stored procedure through said system mutex.
Claim 21
Dependent Claim
25 words
The method of claim 9, wherein said system mutex is released back to said system when no other client requires access to said data object.
Claim 22
Dependent Claim
19 words
The method of claim 9, wherein said first program is suspended from execution when placed in said sleep state.
Claim 23
Dependent Claim
46 words
The method of claim 9, further comprising the step of allocating within storage a table for maintaining a plurality of shared stored procedures, each shared stored procedure instructing said server to perform a predefined sequence of operations comprising stored data manipulation statements operating on said database.
Claim 24
Dependent Claim
298 words
A computer program product for providing nested mutual exclusive access to a data object specified by a shared stored procedure in a client-server database system including a server maintaining a database and a plurality of clients, said computer program product comprising: a computer readable storage medium storing a computer program, said computer program comprising: code that allocates within storage a record describing access to a data object specified by said shared stored procedure storing user-specified data manipulation statements for instructing said server to perform a predefined sequence of data manipulation operations on said database and shared concurrently by said plurality of clients, said record having an identifier field for storing an identity of a client, having a mutex field for accessing a system mutex which does not support nested mutual exclusive access, and having a count field for storing how many times said client has requested access to said data object; code that receives at least one request from a particular client to access said data object; and code that for each said at least one request from said particular client to access said data object, performs one of the following: stores an identify of said particular client in said identifier field, stores in said mutex field a pointer to a system mutex that does not allow nested mutual exclusive access, stores a value of 1 in said count field, and granting said particular client access to said data object if said identifier field indicates no client has access to said data object, places said particular client in a sleep state until said identifier field indicates no other client has access to said data object if said identifier field does not specify said particular client, and increments said count field if said identifier field specifies said particular client.
Claim 25
Dependent Claim
298 words
A computer program product for providing nested mutual exclusive access to a data object specified by a shared stored procedure in a client-server database system including a server maintaining a database and a plurality of clients, said computer program product comprising: a computer readable storage medium storing a computer program, said computer program comprising: code that allocates within storage a record describing access to a data object specified by said shared stored procedure storing user-specified data manipulation statements for instructing said server to perform a predefined sequence of data manipulation operations on said database and shared concurrently by said plurality of clients, said record having an identifier field for storing an identity of a client, having a mutex field for accessing a system mutex which does not support nested mutual exclusive access, and having a count field for storing how many times said client has requested access to said data object; code that receives at least one request from a particular client to access said data object; and code that for each said at least one request from said particular client to access said data object, performs one of the following: stores an identify of said particular client in said identifier field, stores in said mutex field a pointer to a system mutex that does not allow nested mutual exclusive access, stores a value of 1 in said count field, and granting said particular client access to said data object if said identifier field indicates no client has access to said data object, places said particular client in a sleep state until said identifier field indicates no other client has access to said data object if said identifier field does not specify said particular client, and increments said count field if said identifier field specifies said particular client.
Claim 26
Dependent Claim
21 words
The computer program product of claim 22, wherein said computer program allows said particular client nested access to said data object.
Claim 27
Dependent Claim
27 words
The computer program product of claim 22, further comprising code that decrements said count field when said particular client finishes a requested access to said data object.
Claim 28
Dependent Claim
25 words
The computer program product of claim 24, further comprising code that allows another client to access said data object once said count field reaches zero.
Claim 29
Dependent Claim
34 words
The computer program product of claim 24, further comprising code that stores a blank value in said identifier field indicating no client has access to said data object when said count field reaches zero.
Claim 30
Dependent Claim
34 words
The computer program product of claim 22, further comprising: code that obtains said system mutex from said system; and code that provides mutual exclusive access to said shared stored procedure through said system mutex.
Claim 31
Dependent Claim
27 words
The computer program product of claim 27, wherein said system mutex is released back to said system when no other client requires access to said data object.
Claim 32
Dependent Claim
41 words
The computer program product of claim 22, further comprising code that allocates within storage a table for maintaining a plurality of shared stored procedures, each shared stored procedure instructing said server to perform a predefined sequence of operations on said database.
References Cited (Backward Citations)
US4594656A
Cited
US4847754A
Cited
US4714996A
Cited
US4887204A
Cited
US4897781A
Cited
US5151989A
Cited
US5319780A
Cited
US5133075A
Cited
US5113519A
Cited
US5287521A
Cited
WO1991003024A1
Cited
US5072378A
Cited
US5263165A
Cited
US5388196A
Cited
US5265235A
Cited
US5327556A
Cited
US5285528A
Cited
US5452459A
Cited
US5442758A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-06-30 | 2000-12-30 | 2001-07-01 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-06-30 | 2004-12-30 | 2005-07-01 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-06-30 | 2008-12-30 | 2009-07-01 | $7700.00 | Window Closed / Lapsed |