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

Database system with methodology for notifying clients of any additions, deletions, or modifications occurring at the database server which affect validity of a range of data records cached in local memory buffers of clients

Assignee: Borland Software Corp
•
Filing: 1996-04-19
•
Granted: 1998-10-20
•
Expires: 2016-04-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Client/server system and methods are described for providing a "cache range" to database clients. When one or more records in a cache range of a client change, a server in connection with the client sends a notification that the cache range has changed. Instead of the client taking a lock out for updating a record, the client simply indicates to the server which records it is interested in (e.g., via registering an event alerter request), whereupon the server manages its resources as necessary to notify the client of a change in one of the records which is of interest to the client. The server can simply take out "interest" locks on the corresponding records; these are not locks which exclude the resource from other clients. Other clients are not prevented from accessing this resource (i.e., the records which are of interest). The interest lock is employed in conjunction with the registered event alerter for notifying the client when a range of records of interest is updated by another client. In this manner, the server undertakes action to indicate to the client when the client local buffer might be stale, thereby providing improved local record buffer management in a client/server database context.

Inventors

  • 👤 David Bredenberg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 22:04
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F16/00; G06F16/20; G06F16/23; G06F16/2358; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99937; Y10S707/99938

Claims Analysis

Total Claims: 42
Claim 1
Independent Claim 289 words
In a multi-user computer system, the system including a database server maintaining on a storage device data records having data fields which store values that change in response to modifications posted by multiple clients in communication with said database server, each client maintaining a local memory buffer for caching a local copy of data records which have been retrieved, a method for notifying clients of any additions, deletions, or modifications occurring at the database server which affect validity of a range of data records cached in the local memory buffer of clients, the method comprising: receiving at said database server a request from a particular client which defines a range of data records to fetch; in response to said request, (i) transferring a valid copy of data records within said range from the storage device of the server to the particular client, whereupon a valid copy of data records within said range exists in the local memory buffer of the particular client, and (ii) registering at the database server a request to notify the particular client of any event occurring at the database server that affects said range of data records as a result of additions, deletions, or modifications posted by other clients in communication with said database server; receiving at said database server a request from a client other than said particular client to post a change; determining by said database server if the request to post a change specifies a change affecting said range; and if the request to post a change specifies a change that affects said range, notifying said particular client registered with said database server of occurrence of an event which has occurred at the database server which affects said range of data records.
Claim 2
Dependent Claim 289 words
In a multi-user computer system, the system including a database server maintaining on a storage device data records having data fields which store values that change in response to modifications posted by multiple clients in communication with said database server, each client maintaining a local memory buffer for caching a local copy of data records which have been retrieved, a method for notifying clients of any additions, deletions, or modifications occurring at the database server which affect validity of a range of data records cached in the local memory buffer of clients, the method comprising: receiving at said database server a request from a particular client which defines a range of data records to fetch; in response to said request, (i) transferring a valid copy of data records within said range from the storage device of the server to the particular client, whereupon a valid copy of data records within said range exists in the local memory buffer of the particular client, and (ii) registering at the database server a request to notify the particular client of any event occurring at the database server that affects said range of data records as a result of additions, deletions, or modifications posted by other clients in communication with said database server; receiving at said database server a request from a client other than said particular client to post a change; determining by said database server if the request to post a change specifies a change affecting said range; and if the request to post a change specifies a change that affects said range, notifying said particular client registered with said database server of occurrence of an event which has occurred at the database server which affects said range of data records.
Claim 3
Dependent Claim 29 words
The method of claim 1, wherein said request comprises a binary language representation specifying a "begin range" command, one or more "get record" commands, and an "end range" command.
Claim 4
Dependent Claim 26 words
The method of claim 1, wherein substep (ii) further comprises: asserting a record interest lock at the databases server for each data record within said range.
Claim 5
Dependent Claim 25 words
The method of claim 3, further comprising: escalating multiple record interest locks into a single table lock, when multiple record interest locks are asserted simultaneously.
Claim 6
Dependent Claim 35 words
The method of claim 3, wherein each record interest lock is released by the database server upon receiving a request from another client for updating the data record associated with said each record interest lock.
Claim 7
Dependent Claim 14 words
The method of claim 1, wherein said notifying step occurs as an asynchronous trap.
Claim 8
Dependent Claim 14 words
The method of claim 1, wherein said notifying step occurs as a synchronous trap.
Claim 9
Dependent Claim 15 words
The method of claim 6, wherein said particular client sleeps while awaiting said synchronous trap.
Claim 10
Dependent Claim 35 words
The method of claim 8, wherein each transaction interest lock is released by the database server upon receiving a request from another client for committing the uncommitted data records associated with each record interest lock.
Claim 11
Dependent Claim 33 words
The method of claim 1, wherein substep (ii) further comprises: taking out a transaction interest lock at the database server for any uncommitted data records which exist in said range of data records.
Claim 12
Dependent Claim 34 words
The method of claim 1, further comprising: in response to said notifying step, refreshing the local memory buffer by transferring a valid copy of any data record in said range which has been modified.
Claim 13
Dependent Claim 46 words
The method of claim 1, wherein said request from a particular client which defines a range of data records to fetch includes a request to notify the particular client of any modification which occurs to one or more data records in said range of data records.
Claim 14
Dependent Claim 38 words
The method of claim 12, wherein each page interest lock is released by the database server upon receiving a request from another client for committing a modified data record which now appears within said range of data records.
Claim 15
Dependent Claim 36 words
The method of claim 1, wherein step (ii) further comprises: asserting a page interest lock at the database server for detecting a record which, after modification, appears between any of said data records of said range.
Claim 16
Dependent Claim 34 words
The method of claim 1, wherein said receiving a request which defines a range step further comprises: creating a unique identifier for said range; and returning said unique identifier back to the particular client.
Claim 17
Dependent Claim 33 words
The method of claim 15, wherein said notifying step includes matching said unique identifier with other ranges which the particular client has requested, for determining a particular range where the modification has occurred.
Claim 18
Dependent Claim 20 words
The method of claim 15, wherein said unique identifier comprises a text string which is unique for the particular client.
Claim 19
Dependent Claim 21 words
The method of claim 1, wherein said event occurring at the database server comprises operations which insert, delete, and update records.
Claim 20
Dependent Claim 18 words
The method of claim 1, wherein said registering step includes registering an event alerter with said database server.
Claim 21
Dependent Claim 38 words
The method of claim 1, further comprising: receiving a request from the particular client to drop the range, whereupon said database server no longer notifies the particular client of any events that affect data records in said range.
Claim 22
Dependent Claim 174 words
In a multi-user database management system, the system including a database server providing access to a database, the database server in communication with a plurality of clients, a method for notifying clients of particular events occuring in the database which render local record buffers of client stale, the method comprising: registering with the database server a range of data records which are of interest to at least one client, each of said at least one client requiring notification of occurence of any event comprising an insert, update, or delete operation at the database server that affects said range of data records; posting a transaction to the database server, said transaction specifying at least one operation comprising a particular event that affects said range of data records; upon occurrence of said operation specified by said transaction, determining by the database server which clients require notification of occurence of said particular event; and sending a notification from said database server to each said at least one client which requires notification of occurrence of said particular event.
Claim 23
Dependent Claim 174 words
In a multi-user database management system, the system including a database server providing access to a database, the database server in communication with a plurality of clients, a method for notifying clients of particular events occuring in the database which render local record buffers of client stale, the method comprising: registering with the database server a range of data records which are of interest to at least one client, each of said at least one client requiring notification of occurence of any event comprising an insert, update, or delete operation at the database server that affects said range of data records; posting a transaction to the database server, said transaction specifying at least one operation comprising a particular event that affects said range of data records; upon occurrence of said operation specified by said transaction, determining by the database server which clients require notification of occurence of said particular event; and sending a notification from said database server to each said at least one client which requires notification of occurrence of said particular event.
Claim 24
Dependent Claim 33 words
The method of claim 21, wherein said registering step includes: registering an event alerter with the database server for alerting said at least one client of occurrence of an event affecting said range.
Claim 25
Dependent Claim 17 words
The method of claim 21, wherein said transaction comprises an SQL statement for updating a data record.
Claim 26
Dependent Claim 17 words
The method of claim 21, wherein said transaction comprises an SQL statement for deleting a data record.
Claim 27
Dependent Claim 17 words
The method of claim 21, wherein said transaction comprises an SQL statement for inserting a data record.
Claim 28
Dependent Claim 17 words
The method of claim 21, wherein said modification specified by said transaction occurs when said transaction commits.
Claim 29
Dependent Claim 21 words
The method of claim 21, wherein said determining step comprises: traversing a list of ranges which have been requested by clients.
Claim 30
Dependent Claim 20 words
The method of claim 27, wherein each range of said list of ranges is uniquely associated with a single client.
Claim 31
Dependent Claim 23 words
The method of claim 21, further comprising repeating said registering step so that a plurality of ranges are registered with the database server.
Claim 32
Dependent Claim 30 words
The method of claim 21, further comprising: in response to receipt of said notification, refreshing any local record buffer which has been rendered stale by occurrence of said particular event.
Claim 33
Dependent Claim 176 words
In a system comprising a computer network having at least one client with a processor and a memory, and the computer network including a server for storing information which may be shared by said at least one client, a method for providing access to information stored on the server, the method comprising: allocating a buffer in the memory of said at least one client for storing information of interest, said information of interest comprising a range; transferring certain information of interest from the server into said buffer of said at least one client and registering a request with the server that said at least one client be notified if information stored in said buffer is rendered stale; receiving a request from another client to insert, delete, or update information at the database server; in response to said request, determining by the database server whether information stored in said buffer is rendered stale; and if information stored in said buffer is rendered stale, notifying each said at least one client information stored in said buffer is stale.
Claim 34
Dependent Claim 176 words
In a system comprising a computer network having at least one client with a processor and a memory, and the computer network including a server for storing information which may be shared by said at least one client, a method for providing access to information stored on the server, the method comprising: allocating a buffer in the memory of said at least one client for storing information of interest, said information of interest comprising a range; transferring certain information of interest from the server into said buffer of said at least one client and registering a request with the server that said at least one client be notified if information stored in said buffer is rendered stale; receiving a request from another client to insert, delete, or update information at the database server; in response to said request, determining by the database server whether information stored in said buffer is rendered stale; and if information stored in said buffer is rendered stale, notifying each said at least one client information stored in said buffer is stale.
Claim 35
Dependent Claim 14 words
The method of claim 31, wherein said notifying step occurs as an asynchronous trap.
Claim 36
Dependent Claim 14 words
The method of claim 31, wherein said notifying step occurs as a synchronous trap.
Claim 37
Dependent Claim 32 words
The method of claim 31, further comprising: in response to said notifying step, refreshing said buffer by transferring a valid copy of any information in said buffer which has been rendered stale.
Claim 38
Dependent Claim 34 words
The method of claim 31, wherein said determining step includes: determining whether information stored in said buffer is rendered stale by a new data record being inserted at the server into said certain information.
Claim 39
Dependent Claim 134 words
A server-based networking system with improved data access comprising: a server having a storage device; at least one client operably coupled to said server through a communication line, each said at least one client having a processor and a memory; means for transferring a valid copy of a range of data records from the storage device of the server to memory of the client; means, responsive to a request for said range of data records, for providing access to the valid copy of the range of data records in the memory of the client; and means for transmitting a notification from the server to the client when the copy is render invalid as a result of an event occurring at the server which affects validity of said copy of said range of data records.
Claim 40
Dependent Claim 134 words
A server-based networking system with improved data access comprising: a server having a storage device; at least one client operably coupled to said server through a communication line, each said at least one client having a processor and a memory; means for transferring a valid copy of a range of data records from the storage device of the server to memory of the client; means, responsive to a request for said range of data records, for providing access to the valid copy of the range of data records in the memory of the client; and means for transmitting a notification from the server to the client when the copy is render invalid as a result of an event occurring at the server which affects validity of said copy of said range of data records.
Claim 41
Dependent Claim 33 words
The system of claim 36, further comprising: means, responsive to said transmitting means, for refreshing the memory by transferring a valid copy of any data record in said range which has been modified.
Claim 42
Dependent Claim 22 words
The system of claim 36, wherein said event comprises an operation which performs a selected one of inserting, deleting, and updating records.

References Cited (Backward Citations)

US4897781A Cited
US5151989A Cited
US5133075A Cited
US5555388A Cited
US5493728A Cited
US5617568A Cited
US5628005A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-19 2002-04-20 2002-10-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-19 2006-04-20 2006-10-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-19 2010-04-20 2010-10-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag