Method for client specific database change propagation
OwnerPrakash Khemaniinventor
Life of this patent
Estimating the term…
Abstract
A new method is provided for a database client to interact with a database server that allows the client to observe all changes happening in the server. Using this method is efficient to aggregate changes at the database record level before delivering them to the client. The method can also ensure exactly-once delivery of every change to the client. This method is implemented in the database server by a new data structure that maintains all database pages being modified on a linked list. Any database can incorporate this method to provide this aggregated, exactly-once change observation functionality.
Claims13
A method for a database server to support clients that want to observe all changes happening in the database server, the method comprising:
- (a) assigning a log sequence number to each database record and each page present in the database;
- (b) maintaining a chain which is a linked list of all the pages in the order they are modified;
- (c) maintaining a state for a plurality of clients on the chain, where the position of the client's state on the chain specifies the location from where to find changes that have not yet been served to the client;
- (d) maintaining a plurality of landmark nodes on the chain to help initially place clients on the chain when they register;
- (e) scanning all the pages in the chain from where the client's state is located to the top of the chain, thereby collecting all changed database records that have not yet been delivered to the client, wherein multiple updates to a database record is delivered as a single change record to the client;
- (f) identifying the changed database records that have to be served while scanning the chain;
- (g) applying further processing to each database record and its aggregated updates to create corresponding change records;
- and
- (h) delivering the changed records to the client.
A method for a database server to support clients that want to observe all changes happening in the database server, the method comprising:
- (a) assigning a log sequence number to each database record and each page present in the database;
- (b) maintaining a chain which is a linked list of all the pages in the order they are modified;
- (c) maintaining a state for a plurality of clients on the chain, where the position of the client's state on the chain specifies the location from where to find changes that have not yet been served to the client;
- (d) maintaining a session for each client while changes are being collected for a client
- (e) maintaining enough session state to ensure exactly once delivery of each change further comprising;
- (f) managing space for the session state management;
- (g) maintaining a plurality of landmark nodes on the chain to help initially place clients on the chain when they register;
- (h) scanning all the pages in the chain from where the client's state is located to the top of the chain, thereby collecting all changed database records that have not yet been delivered to the client, wherein multiple updates to a database record is delivered as a single change record to the client;
- (i) identifying the changed database records that have to be served while scanning the chain;
- (j) applying further processing to each database record and its aggregated updates to create corresponding change records;
- and
- (k) delivering the changed records to the client.
Dependencies are inferred from the claim text.