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 "Mike Matrigali (JIRA)" <ji...@apache.org> on 2007/07/12 18:37:04 UTC

[jira] Updated: (DERBY-2926) Replication: Add a log buffer for log records that should be shipped to the slave

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

Mike Matrigali updated DERBY-2926:
----------------------------------


Do you have a writeup on the architecture for replication you are implementing other
than what is in this JIRA and DERBY-2922.  It is hard to comment without understanding
the architecture you envision.

Have you considered rather than having a linked list of log records, using the existing functionality to scan the log records as the base for your list of log records to write?  Some
of this depends on what kind of replication guarantee you are trying to provide.  In other
systems I have seen this describes similar to levels of transaction durability, ie. levels
like (all basically are tradeoffs about how much you impact master side commit
response time against guaranteeing slave consistency):
o don't allow transaction to commit until log records are synced to remote system
o queue write of log records at commit to remote, wait for network reply but not disk sync
o queue write of log records at commit to remove, don't wait for network reply

If you are looking for any sort of coordination between transaction commit and guaranteeing
records on the remote I think I would tie into the existing log writing code rather than add
a separate beast.  Basically just enhance the small piece of code that actually writes log
records to disk to also call a new routine that would also write log records somewhere
else.  This does mean impacting performance of master response time depending on
the overhead of the secondary write method.  Using multiple threads to do I/O locally and
remote at same time would probably help a lot.


> Replication: Add a log buffer for log records that should be shipped to the slave
> ---------------------------------------------------------------------------------
>
>                 Key: DERBY-2926
>                 URL: https://issues.apache.org/jira/browse/DERBY-2926
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Store
>    Affects Versions: 10.4.0.0
>            Reporter: Jørgen Løland
>            Assignee: Jørgen Løland
>
> When a Derby instance has the master role for a database, log records are shipped to the slave to keep it up to date. A buffer is needed because the log records should not be shipped one at a time. Also, writing the log records to a buffer instead of sending them immediately removes the network communication from the critical path for the transaction.

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