Client-server computer system and method for updating the client, server, and objects
First Claim
1. A client server computer system comprising a server and a plurality of clients, each having a cache, and a network connecting said server and said clients, wherein an object to be processed is identified by its identifier (ID) and its version value which is an update record of the object, the system comprising:
- means provided in said client for updating the object in said cache in said client without first obtaining a lock from the server;
means for issuing a request for reading the object;
means provided in said client for transmitting to the server the ID and contents of the updated object upon updating thereof or the ID of said object to which the read request has been issued and the version value, held at the client, of said object;
version management means provided in said client for setting, in response to the transmitting of said ID and contents of the updated object, the version value of said updated object to a predetermined value, said predetermined value indicating that said updated object has been most recently updated in a current transaction at said client and has not yet been committed;
means for allowing said client to start other processing in response to said version management means setting the version value of the object to said predetermined value if the object has been updated, or having said client stop processing if the read request has been issued;
reception means provided in said server responsive to said transmitting means provided in said client, for receiving said ID and contents of the object updated by said client, or said ID of the object for which the read request has been issued and its version value, held at the client, of the object;
lock management means provided in said server for placing a write lock on said updated object, or a read lock on said object to which the read request has been raised;
version management means provided in said server for updating the version value, held at the server, of said updated object to a latest version value, or comparing said transmitted version value of said object at the client with said version value of said object at the server;
means provided in said server for sending from said server the contents and said version value of said object to which the read request has been issued if it is determined by said version management means provided in said server that said version value of said object at the client is older than said version value of said object at the server, or sending said version value, at the server, of the object to which the read request has been issued otherwise,means provided in said server for sending to the client the latest version value of the object which has been updated in the event the current transaction is committed and ended; and
means provided in said client responsive to said sending means provided in said server, for receiving the contents of said object for which the read request has been issued and said version value thereof held at the server, and receiving the ID and latest version value of said object which has been updated if and when the current transaction is committed and completed.
1 Assignment
0 Petitions
Accused Products
Abstract
Cache updates are made asynchronously between a client and a server in a client server system while the integrity of objects is being maintained, thus avoiding blocked processing at the client, reducing load on communication lines, and enhancing the performance of the whole system. The client, after it has updated an object in its cache, sends the ID and contents of the updated object to the server. Then, the client sets the version of its object to 0, and starts other processing without waiting completion of the update in server. Upon receiving a update request from the client, the server places an update lock on the object and update the object in server cache. Then, the server returns no response to this operation. When the transaction is committed, the server uses the updated contents to update its own disk and sends the version at the server to the client.
231 Citations
17 Claims
-
1. A client server computer system comprising a server and a plurality of clients, each having a cache, and a network connecting said server and said clients, wherein an object to be processed is identified by its identifier (ID) and its version value which is an update record of the object, the system comprising:
-
means provided in said client for updating the object in said cache in said client without first obtaining a lock from the server; means for issuing a request for reading the object; means provided in said client for transmitting to the server the ID and contents of the updated object upon updating thereof or the ID of said object to which the read request has been issued and the version value, held at the client, of said object; version management means provided in said client for setting, in response to the transmitting of said ID and contents of the updated object, the version value of said updated object to a predetermined value, said predetermined value indicating that said updated object has been most recently updated in a current transaction at said client and has not yet been committed; means for allowing said client to start other processing in response to said version management means setting the version value of the object to said predetermined value if the object has been updated, or having said client stop processing if the read request has been issued; reception means provided in said server responsive to said transmitting means provided in said client, for receiving said ID and contents of the object updated by said client, or said ID of the object for which the read request has been issued and its version value, held at the client, of the object; lock management means provided in said server for placing a write lock on said updated object, or a read lock on said object to which the read request has been raised; version management means provided in said server for updating the version value, held at the server, of said updated object to a latest version value, or comparing said transmitted version value of said object at the client with said version value of said object at the server; means provided in said server for sending from said server the contents and said version value of said object to which the read request has been issued if it is determined by said version management means provided in said server that said version value of said object at the client is older than said version value of said object at the server, or sending said version value, at the server, of the object to which the read request has been issued otherwise, means provided in said server for sending to the client the latest version value of the object which has been updated in the event the current transaction is committed and ended; and means provided in said client responsive to said sending means provided in said server, for receiving the contents of said object for which the read request has been issued and said version value thereof held at the server, and receiving the ID and latest version value of said object which has been updated if and when the current transaction is committed and completed. - View Dependent Claims (2, 3, 4)
-
-
5. In a client server computer system including a server, a plurality of clients, and a network connecting said server and said clients, wherein an object for processing is identified with an object identifier (ID) and a version value, a client computer comprising:
-
a client cache for storing objects received from the server; means for updating any said object in the client cache without first obtaining a lock from the server; means for sending said ID and updated content of said any updated object to said server upon updating thereof; and version control means for changing the version value of said any updated object to a predetermined value in response to said means for sending, said predetermined value indicating that said any updated object has been most recently updated in a current transaction and has not yet been committed, wherein the client may immediately continue processing after said changing of the version value to said predetermined value without waiting for a reply from the server. - View Dependent Claims (6, 7)
-
-
8. In a client server computer system including a server, a plurality of clients, and a network connecting said server and said clients, wherein an object for processing is identified with an object identifier (ID) and a version value, a server computer comprising:
-
a server cache; a version control means for controlling said version value for each object in said server cache; receiving means for receiving said ID and contents of said objects updated by said clients from said clients; and lock means for performing write locks for said updated objects, wherein said version control means updates versions of said updated objects to newest values but does not acknowledge receipt of said updated objects upon receipt thereof nor the performing of said write locks by said lock means, and the server computer further comprises means for sending an ID and said newest version values of objects updated by a client in a current transaction if and when said current transaction is committed and ended. - View Dependent Claims (9)
-
-
10. In a client server computer system including a server and a plurality of clients, each having a cache, and a network connecting said server and said clients, wherein an object for processing is identified with its object identifier (ID) and its version value, a method for updating the objects in said system, comprising the steps of:
-
updating an object stored in said cache of a client without first obtaining a lock from the server; sending the ID and a content of said updated object to the server upon update thereof; updating the version value of the updated object stored at the client to a predetermined value in response to the step of sending the ID and a content to the server, the predetermined value indicating that said updated object has been most recently updated in a current transaction and has not yet been committed; starting other processing at the client in response to the step of updating the version value without waiting for a reply from the server; receiving the ID and the content of said object updated by the client at the server and storing said updated object at the server in response to the step of sending the ID and a content but not acknowledging receipt thereof to the client; performing a write lock to said updated object stored at the server but not acknowledging said performing of a write lock to the client; updating the version value of said updated object stored at the server to a newest value; and sending the ID and said newest version value of said updated object to said client if and when said transaction is committed and ended. - View Dependent Claims (11, 12, 13)
-
-
14. A client server computer system comprising a server and a plurality of clients, each having a cache, and a network connecting said server and said clients, wherein an object to be processed is identified by its identifier (ID) and its version value which is an update record of the object, the system comprising:
-
means provided in said client for updating the object in said cache in said client without first obtaining a lock from the server; means provided in said client for transmitting the ID and contents of said object being updated to the server upon updating thereof; version updating means provided in said client for setting, in response to said transmitting means, the version value of said updated object at said client to a predetermined value, said predetermined value indicating that said updated object has been most recently updated ID a current transaction by said client and has not yet been committed; means for allowing said client to start other processing in response to said version updating means setting the version value of said updated object to said predetermined value without waiting for a reply from the server; means provided in said server for receiving, in response to said transmitting means, said ID and contents of the object updated by said client; lock management means provided in said server for placing a write lock on said updated object received at the server without acknowledging said write lock to said client; version management means provided in said server for updating the version value of the updated object held at the server to a latest value; and means provided in said server for sending to said client the ID and latest version value of the object which has been updated if and when the current transaction is committed and completed. - View Dependent Claims (15, 16, 17)
-
Specification