db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jørgen Løland <Jorgen.Lol...@Sun.COM>
Subject Re: [jira] Commented: (DERBY-3064) Implement the LogShipper that will enable the shipping of Log records from the master to the slave
Date Mon, 24 Sep 2007 09:53:41 GMT
>> 2. It seems like you suggest that the shipping thread will continously
>>   check to see whether the timeout has expired. Generally, such
>>   busy-waits should be avoided. I think you should introduce a timer
>>   or something so that the thread can be suspended until it is time
>>   to ship log records. 
> 
> I have introduced the time concept to overcome the limitation imposed by
> DaemonFactory.
> 
> 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)
> 

If I understand you correctly, this time interval will only be helpful 
in the "too soon" case, not the "too late" case.

When I wrote version 2 of the proof of concept patches (see DERBY-2872), 
I used a Daemon to read log records at the slave side. I basically had:

performWork {
   if (messageWaitingForProcess) processMessage();
}

The waiting interval between each time performWork was called was way 
too high for this usage (in the order of 3-10 seconds). This interval is 
probably too high for the log shipper as well, so my guess is that 
you'll need something similar to an eternal loop with a wait(millis) 
somewhere in this package.



-- 
Jørgen Løland

Mime
View raw message