db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Øystein Grøvlen (JIRA) <j...@apache.org>
Subject [jira] Commented: (DERBY-3051) Replication: Modify logging subsystem to append log records to the replication buffer when in replication master mode
Date Mon, 24 Sep 2007 11:23:51 GMT

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

Øystein Grøvlen commented on DERBY-3051:

V.Narayanan (JIRA) wrote:
> I however do not want to do this in the first version of the patch
> for this issue.  I will submit the first version assuming a static
> time interval, keep this issue open and change it in the next
> version if this is OK with the community.

Sounds good to me.  A static, but configurable, timeout interval
should probably be good-enough for most cases.

> The DaemonFactory would call performWork (i.e.) ship log records at its own
> convinience. As i understand it we cannot configure DaemonFactory to transmit
> at our mentioned time interval.
> So, When performWork is called entirely depends on how good
> DaemonFactory is feeling :-)
> We do not want this to happen, because what if this is too soon for
> us or what if it is too late.
> Hence we introduce a transmit interval variable that calculates the
> difference between the last call and the current call of performWork
> or rather shipALogChunk(forceFlush also)

My concern is that if the Daemon Service have very little else to do,
it will continously call LogShipper#performWork and use a lot of
unecessary CPU for checking the time.

> Sorry about being ambiguous here. ShippingDaemon is Derby's
> DaemonService that is booted up and is not a thread I introduce.

Using a separate thread would probably give you more flexibility with
respect to how log shipping is scheduled.

> Replication: Modify logging subsystem to append log records to the replication buffer
when in replication master mode
> ---------------------------------------------------------------------------------------------------------------------
>                 Key: DERBY-3051
>                 URL: https://issues.apache.org/jira/browse/DERBY-3051
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Services, Store
>    Affects Versions:
>            Reporter: Jørgen Løland
>            Assignee: Jørgen Løland
>         Attachments: derby_3051_1.diff, derby_3051_1.stat, derby_3051_1b.diff, derby_3051_1b.stat
> When Derby has the replication master role for a database 'x', it should ship all log
records generated for this database to the Derby with the slave role. A replication buffer
was added to Derby in DERBY-2926. This issue is for modifying the logging subsystem to append
log records to this buffer every time a log records is appended to the disk buffer (LogAccessFile).
This will, of course, only be done if it has the master role.
> Currently, I have identified two modifications that will be required in LogToFile:
> * LogToFile#appendLogRecord needs to append to the replication buffer after appending
to the disk buffer
> * LogToFile#flush (i.e., the method used to force buffered log records to disk) must
notify the Master Controller (DERBY-2977) that a flush has taken place. The MasterController
will decide if any action is required because of this. 

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

View raw message