Multi-instance redo apply
First Claim
1. A method comprising:
- on each standby instance of a plurality of standby instances for a standby database;
an apply process of a plurality of apply processes running on said each standby instance to apply change records to said standby database;
a sender process of a plurality of sender processes running on said each standby instance to transmit change records to at least one receiver process of a plurality of receiver processes;
a receiver process of said plurality of receiver processes running on said each standby instance to receive change records transmitted by at least one sender process of said plurality of sender processes to said receiver process;
each standby instance of said plurality of standby instances;
storing a plurality of change records received from one or more primary instances for a primary multi-instance database;
making determinations of how to assign said plurality of change records to said plurality of apply processes, each determination of said determinations assigning a change record of said plurality of change records to an apply process of said plurality of apply processes;
according to said determinations, the respective sender process of said plurality of sender processes running on said each standby instance dispatching each change record of at least of a portion of said plurality of change records to a standby instance on which the apply process assigned to said each change record runs;
each receiver process of said plurality of receiver processes receiving dispatched change records dispatched to said each receiver process by a sender process running on a standby instance different than the standby instance on which said each receiver process runs;
each standby instance of said plurality of standby instances ordering a respective plurality of assigned change records assigned to an apply process running on said each standby instance, said ordering made according to a logical time associated with each assigned change record of said plurality of assigned change records, said respective plurality of assigned change records including dispatched change records that are received by a receiver process of said plurality of receiver processes running on said each standby instance and that are transmitted by a sender process of said plurality of sender processes running on a different standby instance of said plurality of standby instances;
each standby instance of said plurality of standby instances distributing each assigned change record of the respective plurality of assigned change records to the assigned apply process of said each assigned change record.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and system for multi-instance redo apply is provided for standby databases. A multi-instance primary database generates a plurality of redo records, which are received and applied by a physical standby running a multi-instance standby database. Each standby instance runs a set of processes that utilize non-blocking, single-task threads for high parallelism. At each standby instance for the multi-instance redo, the plurality of redo records are merged into a stream from one or more redo strands in logical time order, distributed to standby instances according to determined apply slave processes using an intelligent workload distribution function, reemerged after receiving updates from remote instances, and applied in logical time order by the apply slave processes. Redo apply progress is tracked at each instance locally and also globally, allowing a consistent query logical time to be maintained and published to service database read query requests concurrently with the redo apply.
253 Citations
31 Claims
-
1. A method comprising:
-
on each standby instance of a plurality of standby instances for a standby database; an apply process of a plurality of apply processes running on said each standby instance to apply change records to said standby database; a sender process of a plurality of sender processes running on said each standby instance to transmit change records to at least one receiver process of a plurality of receiver processes; a receiver process of said plurality of receiver processes running on said each standby instance to receive change records transmitted by at least one sender process of said plurality of sender processes to said receiver process; each standby instance of said plurality of standby instances; storing a plurality of change records received from one or more primary instances for a primary multi-instance database; making determinations of how to assign said plurality of change records to said plurality of apply processes, each determination of said determinations assigning a change record of said plurality of change records to an apply process of said plurality of apply processes; according to said determinations, the respective sender process of said plurality of sender processes running on said each standby instance dispatching each change record of at least of a portion of said plurality of change records to a standby instance on which the apply process assigned to said each change record runs; each receiver process of said plurality of receiver processes receiving dispatched change records dispatched to said each receiver process by a sender process running on a standby instance different than the standby instance on which said each receiver process runs; each standby instance of said plurality of standby instances ordering a respective plurality of assigned change records assigned to an apply process running on said each standby instance, said ordering made according to a logical time associated with each assigned change record of said plurality of assigned change records, said respective plurality of assigned change records including dispatched change records that are received by a receiver process of said plurality of receiver processes running on said each standby instance and that are transmitted by a sender process of said plurality of sender processes running on a different standby instance of said plurality of standby instances; each standby instance of said plurality of standby instances distributing each assigned change record of the respective plurality of assigned change records to the assigned apply process of said each assigned change record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A standby database comprising one or more computing devices, the standby database including:
-
a plurality of standby instances each configured to run; an apply process of a plurality of apply processes to apply change records to said standby database; a sender process of a plurality of sender processes to transmit change records to at least one receiver process of a plurality of receiver processes; a receiver process of said plurality of receiver processes to receive change records transmitted by at least one sender process of said plurality of sender processes to said receiver process; each standby instance of said plurality of standby instances further configured to; store a plurality of change records received from one or more primary instances for a primary multi-instance database; make determinations of how to assign said plurality of change records to said plurality of apply processes, each determination of said determinations assigning a change record of said plurality of change records to an apply process of said plurality of apply processes; according to said determinations, the respective sender process of said plurality of sender processes running on said each standby instance dispatching each change record of at least of a portion of said plurality of change records to a standby instance on which the apply process assigned to said each change record runs; each receiver process of said plurality of receiver processes configured to receive dispatched change records dispatched to said each receiver process by a sender process running on a standby instance different than the standby instance on which said each receiver process runs; each standby instance of said plurality of standby instances further configured to order a respective plurality of assigned change records assigned to an apply process running on said each standby instance, said ordering made according to a logical time associated with each assigned change record of said plurality of assigned change records, said respective plurality of assigned change records including dispatched change records that are received by a receiver process of said plurality of receiver processes running on said each standby instance and that are transmitted by a sender process of said plurality of sender processes running on a different standby instance of said plurality of standby instances; each standby instance of said plurality of standby instances further configured to distribute each assigned change record of the respective plurality of assigned change records to the assigned apply process of said each assigned change record. - View Dependent Claims (16, 17)
-
-
18. One or more non-transitory computer-readable storage media, storing instructions which, when executed by one or more processors, cause:
-
on each standby instance of a plurality of standby instances for a standby database; an apply process of a plurality of apply processes running on said each standby instance to apply change records to said standby database; a sender process of a plurality of sender processes running on said each standby instance to transmit change records to at least one receiver process of a plurality of receiver processes; a receiver process of said plurality of receiver processes running on said each standby instance to receive change records transmitted by at least one sender process of said plurality of sender processes to said receiver process; each standby instance of said plurality of standby instances; storing a plurality of change records received from one or more primary instances for a primary multi-instance database; making determinations of how to assign said plurality of change records to said plurality of apply processes, each determination of said determinations assigning a change record of said plurality of change records to an apply process of said plurality of apply processes; according to said determinations, the respective sender process of said plurality of sender processes running on said each standby instance dispatching each change record of at least of a portion of said plurality of change records to a standby instance on which the apply process assigned to said each change record runs; each receiver process of said plurality of receiver processes receiving dispatched change records dispatched to said each receiver process by a sender process running on a standby instance different than the standby instance on which said each receiver process runs; each standby instance of said plurality of standby instances ordering a respective plurality of assigned change records assigned to an apply process running on said each standby instance, said ordering made according to a logical time associated with each assigned change record of said plurality of assigned change records, said respective plurality of assigned change records including dispatched change records that are received by a receiver process of said plurality of receiver processes running on said each standby instance and that are transmitted by a sender process of said plurality of sender processes running on a different standby instance of said plurality of standby instances; each standby instance of said plurality of standby instances distributing each assigned change record of the respective plurality of assigned change records to the assigned apply process of said each assigned change record. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
Specification