You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Jørgen Løland (JIRA)" <ji...@apache.org> on 2007/10/09 08:35:50 UTC

[jira] Updated: (DERBY-2977) Replication: Add a ReplicationMaster controller that will manage replication on the master side

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

Jørgen Løland updated DERBY-2977:
---------------------------------

    Attachment: repli_logbuffer_v2b.diff
                repli_logbuffer_v2b.stat

Thanks for the review, Øystein. I have attached a new patch, v2b, addressing all your comments except 2:

1. Changed constructor of LogAccessFile to call LogToFile#initLogAccessFileReplication. I cannot think of a better name than startReplicationMasterRole, but feel free to suggest one...
9. Do you mean LogToFile#start/stop? If so, startReplicationMasterRole uses this.masterFactory because a parameter has the same name, which is not the case for stopReplicationMasterRole.

Not fixed:

2. To be honest, I don't like either of these strategies ;-) 

With the current strategy: 
next() returns true -> some info is available - could be a log file switch, could be a log record
next() returns false -> done

This allows the loop:
while (next()) {
   if (scan.isFileSwitch()) 
      switchLogFile();
   else
      applyLog(scan.getData());
}

The suggested strategy:
next() returns true -> log available, maybe also a log file switch 
next() returns false -> no log available, but maybe a log file switch? 

I'm ok with the "true" scenario, but not the "false" scenario. I.e., I don't think it is ok for ReplicationLogScan to have vital information (a log switch *must* be performed at the same place on the slave and master) when it returns false. I did not change this in the attached patch. Ideally, I would like to see a third strategy that was better than both these, but cannot think of
one.

All tests pass cleanly.

> 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
>            Assignee: Jørgen Løland
>         Attachments: derby_2977_1.diff, derby_2977_1.stat, derby_2977_1b.diff, derby_2977_1b.stat, derby_2977_1c.diff, derby_2977_1c.stat, repli_logbuffer_v2.diff, repli_logbuffer_v2.stat, repli_logbuffer_v2b.diff, repli_logbuffer_v2b.stat
>
>
> 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.