Database replication
First Claim
1. A method comprising:
- receiving, at a database server, a read request from a client application for reading data from persistent data storage;
determining, by the database server, whether one or more replication servers associated with the database server have a complete cache window corresponding to data of the client application, wherein a complete cache window indicates an entire amount of uncommitted data for the client application is stored in a local cache of a replication server and the uncommitted data is contiguous with committed data associated with the client application, wherein committed data is data that has been written to persistent data storage and uncommitted data is data that has not been written to persistent data storage but is in local cache of the replication servers;
based on determining that one or more replication servers associated with the database server have a complete cache window, selecting a replication server from the one or more replication servers; and
sending the read request to the selected replication server;
wherein sequence numbers are associated with the data, and wherein a replication server has a cache start sequence number and a cache end sequence number for uncommitted data for the client application present in the local cache of the replication server, the cache start sequence number associated with least recent uncommitted data for the client application present in the local cache and the cache end sequence number associated with most recent uncommitted data for the client application present in the local cache.
2 Assignments
0 Petitions
Accused Products
Abstract
A database server receives a request from a client application for performing a data transaction on persistent data storage. The request is sent to a set of replication servers. An acknowledgement for the request is received from each replication server, including a start sequence number and an end sequence number for data that is stored in local cache of the replication server, and a latest committed sequence number for data that was written to the persistent data storage by the replication server. A maximum value of latest committed sequence numbers received from the set of replication servers is determined. For each replication server, it is examined whether there is a gap between the start sequence number for data stored in local cache and the maximum value of the latest committed sequence numbers. Based on the examining, it is determined whether there is an occurrence of loss of data.
16 Citations
16 Claims
-
1. A method comprising:
-
receiving, at a database server, a read request from a client application for reading data from persistent data storage; determining, by the database server, whether one or more replication servers associated with the database server have a complete cache window corresponding to data of the client application, wherein a complete cache window indicates an entire amount of uncommitted data for the client application is stored in a local cache of a replication server and the uncommitted data is contiguous with committed data associated with the client application, wherein committed data is data that has been written to persistent data storage and uncommitted data is data that has not been written to persistent data storage but is in local cache of the replication servers; based on determining that one or more replication servers associated with the database server have a complete cache window, selecting a replication server from the one or more replication servers; and sending the read request to the selected replication server; wherein sequence numbers are associated with the data, and wherein a replication server has a cache start sequence number and a cache end sequence number for uncommitted data for the client application present in the local cache of the replication server, the cache start sequence number associated with least recent uncommitted data for the client application present in the local cache and the cache end sequence number associated with most recent uncommitted data for the client application present in the local cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product, suitably embodied in a non-transitory machine-readable medium and including instructions executable by a processor, the instructions configured to cause the processor to perform operations comprising:
-
receiving, at a database server, a read request from a client application for reading data from persistent data storage; determining, by the database server, whether one or more replication servers associated with the database server have a complete cache window corresponding to data of the client application, wherein a complete cache window indicates an entire amount of uncommitted data for the client application is stored in a local cache of a replication server and the uncommitted data is contiguous with committed data associated with the client application, wherein committed data is data that has been written to persistent data storage and uncommitted data is data that has not been written to persistent data storage but is in local cache of the replication servers; based on determining that one or more replication servers associated with the database server have a complete cache window, selecting a replication server from the one or more replication servers; and sending the read request to the selected replication server, wherein sequence numbers are associated with the data, and wherein a replication server has a cache start sequence number and a cache end sequence number for uncommitted data for the client application present in the local cache of the replication server, the cache start sequence number associated with least recent uncommitted data for the client application present in the local cache and the cache end sequence number associated with most recent uncommitted data for the client application present in the local cache. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification