Operating logging for online recovery in shared memory information systems
First Claim
Patent Images
1. A computer-based apparatus, comprising:
- a system including a server supporting simultaneous access by a first client application and a second client application to managed data of the server, the server including a processor, wherein;
each of the first client application and the second client application operate as a directly connected client model wherein the first client application and the second client application are each linked to an executable server library on the server that supports the first client application and the second client application accessing the managed data via modifying control data of the server,each of the first client application and the second client application and at least parts of the executable server library are executed as a respective same process,the managed data is a collection of data items accessed by the first client application and the second client application stored in a main memory on the server,the control data controls concurrency, permission and access to the managed data, and the control data comprises state information separate from the data items in the managed data and used by critical sections of the executable server library, where a failure or unexpected exit of the first client application or the second client application leave the control data in an inconsistent partially modified state that prevents the executable server library from rolling back the managed data to a consistent state prior to the failure or unexpected exit of the first client application or second client application;
an oplog generator to generate oplogs, the oplogs storing information about changes in the control data while the first client application is operating within the critical sections of the server library but fails to finish all necessary changes to the control data; and
an oplog cleaner process configured to use the oplogs to perform a first operation that undoes the changes in the control data made by the first client application or second client application prior to the failure or unexpected exit of the first client application or second client application and before completing one of the critical sections of the executable server library, wherein undoing the changes in the control data enable the oplog cleaner to then conduct a second roll back operation where the oplog cleaner then uses a second roll back log separate from the oplogs to separately roll back the data items in the managed data to a state prior to the failure or unexpected exit of the first client application or second client application from the executable server library.
5 Assignments
0 Petitions
Accused Products
Abstract
Clients are permitted to directly attach to a client server system. An oplog management system tracks changes as clients make the changes to control structures of the direct connection client server system. The Oplogging system stores changes in oplogs. Then, if a client fails, the Oplogging system can repair the control structures, either by undoing the changes made by the client, or else completing the changes in place of the client; depending upon principles defined.
62 Citations
43 Claims
-
1. A computer-based apparatus, comprising:
-
a system including a server supporting simultaneous access by a first client application and a second client application to managed data of the server, the server including a processor, wherein; each of the first client application and the second client application operate as a directly connected client model wherein the first client application and the second client application are each linked to an executable server library on the server that supports the first client application and the second client application accessing the managed data via modifying control data of the server, each of the first client application and the second client application and at least parts of the executable server library are executed as a respective same process, the managed data is a collection of data items accessed by the first client application and the second client application stored in a main memory on the server, the control data controls concurrency, permission and access to the managed data, and the control data comprises state information separate from the data items in the managed data and used by critical sections of the executable server library, where a failure or unexpected exit of the first client application or the second client application leave the control data in an inconsistent partially modified state that prevents the executable server library from rolling back the managed data to a consistent state prior to the failure or unexpected exit of the first client application or second client application; an oplog generator to generate oplogs, the oplogs storing information about changes in the control data while the first client application is operating within the critical sections of the server library but fails to finish all necessary changes to the control data; and an oplog cleaner process configured to use the oplogs to perform a first operation that undoes the changes in the control data made by the first client application or second client application prior to the failure or unexpected exit of the first client application or second client application and before completing one of the critical sections of the executable server library, wherein undoing the changes in the control data enable the oplog cleaner to then conduct a second roll back operation where the oplog cleaner then uses a second roll back log separate from the oplogs to separately roll back the data items in the managed data to a state prior to the failure or unexpected exit of the first client application or second client application from the executable server library. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-based apparatus comprising:
-
a system including a server supporting simultaneous access by a first client and a second client, the server including a processor, wherein; each of said first client and said second client operating as a directly connected client model wherein applications executed by the first and second client are linked to an executable library on the server that supports said first and second client applications modifying control data on the server, the applications on the first and second clients and at least parts of the executable library on the server linked to the applications are executed as a same process, the server has associated managed data that is a collection of data items accessed by the same process executed by the applications on the first and second clients and the linked part of the executable library on the server, the control data controls concurrency, permission and access to the managed data on the server, and the control data includes a synchronization primitive configured to manage access of the first client and the second client to the managed data, and the control data for the server includes critical sections where a failure or unexpected exit of the first client or second client leave the control data in an inconsistent partially modified state; an oplog generator to generate oplogs for the critical sections of the control data, the oplogs storing information about changes in the control data while the application for said first client is operating within the critical sections of the control data, wherein the oplog generator is further configured to generate managed data logs separately from the oplogs that store changes to the data items in the managed data independently of the changes in the control data stored in the oplogs; an oplog cleaner process to complete or reverse said critical sections of the control data of the server upon determination that said first client failed before completing said changes to the critical sections of the control data; and wherein the oplog cleaner process uses the oplogs to perform a first operation that undoes the changes in the control data made by the first client or second client prior to completing said changes to the critical sections of the control data, and wherein the oplog cleaner, after undoing the changes in the control data, then conducts a second separate roll back operation where the oplog cleaner uses a second managed data log separate from the oplogs to separately roll back the data items in the managed data to a state prior to the first client or second client completing said changes to the critical sections of the control data. - View Dependent Claims (13)
-
-
14. A method for operating a computer system, comprising:
-
configuring a client computer to directly attach to a server in the database system such that the database system executes a client application of the client computer and at least a portion of the database system in a single process, wherein; the client application is linked to an executable server library that supports the client application accessing managed data of the server via modifying control data of the server, the managed data is a collection of data items accessed by the client application, the control data controls concurrency, permission and access to the managed data, the executable server library includes critical sections where a failure or unexpected exit of the client application leaves the control data in an inconsistent partially modified state; maintaining, via the executable server library, the control data to manage the accessing of the managed data by the client application; logging changes to the control data while the client application is operating within the critical sections; separately logging changes to the data items in the managed data; monitoring for a failure of the client application; in response to detection of the failure of the client application, undoing the logged changes made to the control data by the client application while operating within the critical sections of the executable server library prior to the failure or unexpected exit of the client application; and after undoing the logged changes made to the control data, conducting a second separate roll back operation to separately roll back the logged changes made to the data items in the managed data by the client application prior to the failure or unexpected exit of the client application from the executable server library. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. An article comprising a computer-readable memory having associated data stored thereon, wherein the data, when accessed, results in a computer performing operations comprising:
-
configuring a client to directly attach to a server in a system such that a client application of the client and an executable server library execute as a single process, wherein; the client application is linked to the executable server library, the executable server library to support the client application accessing managed data of the server via modifying control data of the server, the managed data is a collection of data items accessed by the client application, the control data controls concurrency, permission and access to the managed data, and the control data includes a synchronization primitive configured to manage access of the client application to the managed data, and the executable server library includes critical sections where a failure or unexpected exit of the client application leaves the control data in an inconsistent partially modified state; maintaining, via the executable server library, the control data to manage the accessing of the managed data by the client application; logging changes to the control data while the client application is operating within the critical sections; monitoring for a failure of the client application; undoing the changes made to the control data by the client application while operating within the critical sections of the executable server library prior to the failure or unexpected exit of the client application from the executable server library; and conducting a second separate roll back operation after undoing the changes made to the control data to separately roll back changes in the data items in the managed data made by the client application prior to the failure or unexpected exit of the client application from the executable server library. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
Specification