Update manager for database system
AssigneeSap SE
InventorPeter Eberlein
Life of this patent
Estimating the term…
Abstract
A database management protocol exchanges update tokens between a client and a server on which the database resides. When a client requests data to be read from a database, an update manager either reads an update token stored therein or generates one dynamically. The update token represents a current state of the data object being read. Sometime thereafter, if the client requests new data to be stored in the object, the client may furnish the update token back to the update manager. The update manager compares the client's update token to a local update token representing a current state of the database and, if they match, determines that the state has not changed. If they do not match, an error results.
Claims16
A data management method, comprising:
- in response to a first read request to read data from a group of databases:
- reading a requested data object referenced by the first read request from a database of the group of databases, and
- returning the requested data object and a first update token to a sender of the first read request, wherein the first update token is generated by applying a hash function to selected data fields of the requested data object for which data inconsistencies cannot be tolerated and the first update token is not changed before any data in the selected data fields of the requested data object is changed, other data fields not selected are omitted by the hash function and the other data fields not selected are data fields for which data inconsistencies can be tolerated;
- and
- in response to a second read request to read the requested data object from the database:
- returning the requested data object and the first update token to a sender of the second read request,
- in response to a first write request to store updated data for the requested data object to the database:
- storing updated data for the requested data object to the database, the updated data comprise updates to at least one selected data fields for which data inconsistencies cannot be tolerated;
- generating a second update token by applying the hash function to the selected data fields of the requested data object for which data inconsistencies cannot be tolerated;
- in response to a second write request to store updated data for the requested data object to the database:
- comparing the second update token to an update token contained in the second write request to store updated data, and
- when the second update token and the update token contained in the second write request to store updated data match, storing data received in the second write request to the database,
- wherein the second update token and the update token contained in the second write request to store updated data will match even if updates to the requested data object stored at the database have occurred during a time between generation of the update token contained in the second write request to store updated data and the second update token, provided the updates to the stored requested data object are only directed to data fields thereof that are tolerant of data inconsistencies, and
- wherein the group of databases comprise a first database that provides native support for update control that prevents inconsistencies introduced by multiple attempts to update same data simultaneously and a second database that does not provide native support for update control that prevents inconsistencies introduced by multiple attempts to update same data simultaneously.
A computer system, comprising
- one or more integrated computer servers each comprising a computer processor, the computer servers being interconnected by a computer network and executing, by respective computer processors:
- applications to be used by a plurality of distributed operators, the applications including execution engines and associated data sets stored in a group of databases, wherein among the group of databases, a first database provides native support for update control that prevents inconsistencies introduced by multiple attempts to update same data simultaneously, and a second database does not provide any native support for update control, and
- an update manager to govern update operations from disparate users to the data sets stored in the group of databases, the update manager adapted to:
- in response to a first read request to read data from the group of databases:
- read a requested data object referenced by the first read request from a database of the group of databases, and
- return the requested data object and a first update token to a sender of the first read request, wherein the first update token is generated by applying a hash function to selected data fields of the requested data object for which data inconsistencies cannot be tolerated and the first update token is not changed before any data in the selected data fields of the requested data object is changed, other data fields not selected are omitted by the hash function and the other data fields not selected are data fields for which data inconsistencies can be tolerated;
- and
- in response to a second read request to read the requested data object from the database:
- return the requested data object and the first update token to a sender of the second read request,
- in response to a first write request to store updated data for the requested data object to the database:
- store updated data for the requested data object to the database, the updated data comprise updates to at least one selected data fields for which data inconsistencies cannot be tolerated;
- generate a second update token by applying the hash function to the selected data fields of the requested data object for which data inconsistencies cannot be tolerated;
- in response to a second write request to store updated data for the requested data object to the database:
- compare the second update token to an update token contained in the second write request to store updated data, and
- when the second update token and the update token contained in the second write request to store updated data match, store data received in the second write request to the database,
- wherein the second update token and the update token contained in the second write request to store updated data will match even if updates to the requested data object stored at the database have occurred during a time between generation of the update token contained in the second write request to store updated data and the second update token, provided the updates to the stored requested data object are only directed to data fields thereof that are tolerant of data inconsistencies.
An apparatus for data management, the apparatus comprising:
- a memory device having executable instructions stored therein;
- and
- a processor in operable communication with the memory device and operative to:
- in response to a first read request to read data from a group of databases:
- read a requested data object referenced by the first read request from a database of the group of databases, and
- return the requested data object and a first update token to a sender of the first read request, wherein the first update token is generated by applying a hash function to selected data fields of the requested data object for which data inconsistencies cannot be tolerated and the first update token is not changed before any data in the selected data fields of the requested data object is changed, other data fields not selected are omitted by the hash function and the other data fields not selected are data fields for which data inconsistencies can be tolerated;
- and
- in response to a second read request to read the requested data object from the database:
- return the requested data object and the first update token to a sender of the second read request,
- in response to a first write request to store updated data for the requested data object to the database:
- store updated data for the requested data object to the database, the updated data comprise updates to at least one selected data fields for which data inconsistencies cannot be tolerated;
- generate a second update token by applying the hash function to the selected data fields of the requested data object for which data inconsistencies cannot be tolerated;
- in response to a second write request to store updated data for the requested data object to the database:
- compare the second update token to an update token contained in the second write request to store updated data, and
- when the second update token and the update token contained in the second write request to store updated data match, store data received in the second write request to the database,
- wherein the second update token and the update token contained in the second write request to store updated data will match even if updates to the requested data object stored at the database have occurred during a time between generation of the update token contained in the second write request to store updated data and the second update token, provided the updates to the stored requested data object are only directed to data fields thereof that are tolerant of data inconsistencies, and
- wherein the group of databases comprise a first database that provides native support for update control that prevents inconsistencies introduced by multiple attempts to update same data simultaneously and a second database that does not provide native support for update control that prevents inconsistencies introduced by multiple attempts to update same data simultaneously.
Dependencies are inferred from the claim text.