[ 
https://issues.apache.org/jira/browse/DERBY-2977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515285
 ] 

Jørgen Løland commented on DERBY-2977:
--------------------------------------

The initial plan for the replication master controller:

The replication master controller is started when the "start replication 
master" command (see functional specification in
DERBY-2872) is issued for a database. There will be exactly one replication 
controller instance for every database with a master role.

It seems to be a good idea to boot the replication controller as a service 
module on a per need basis. This is, e.g., done to boot the TransactionFactory 
and DataFactory services in engine/org/apache/derby/impl/store/raw/RawStore.java

RawStore.java#boot, line 215-221:
-----8<-----
xactFactory = (TransactionFactory)
                        Monitor.bootServiceModule(
                                create, this, getTransactionFactoryModule(), 
properties);

dataFactory = (DataFactory)
                        Monitor.bootServiceModule(
                          create, this, getDataFactoryModule(), properties);
----->8-----

The module will need an API for these commands:

start replication
stop replication

The controller will be managing the replication strategy (asynchronous, 1-safe, 
2-safe, very-safe). For now, only
asynchronous is considered. If more strategies are added later, the API should 
probably be extended with methods to dynamically change the replication 
strategy.

Development on this issue will likely be incremental - the service must be 
modified as more functionality is in place.

> Replication: Add a ReplicationMaster controller that will manage replication 
> on the master side
> -----------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2977
>                 URL: https://issues.apache.org/jira/browse/DERBY-2977
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Services
>    Affects Versions: 10.4.0.0
>            Reporter: Jørgen Løland
>
> The replication master role includes many tasks:
> * set up a network connection to the slave
> * sending the database to the slave before starting replication
> * make sure that log records are appended to the network buffer, and that the 
> log is later sent to the slave
> * etc
> This issue is for adding a controller that will start/stop/initiate all 
> services needed for the replication master role.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to