He Zhenxing wrote:
Thank you. I already added this comment in the code but I
will also add it to the commit message.
Cheers.
> Hi Alfranio,
>
> Patch approved, I only have some one comment regarding the commit
> message.
>
> Alfranio Correia wrote:
>
>> #At
> file:///home/acorreia/workspace.sun/repository.mysql/bzrwork/bug-40337/mysql-6.0-rpl/
> based on revid:luis.soares@stripped
>>
>> 2810 Alfranio Correia 2009-02-13
>> BUG#40337 Fsyncing master and relay log to disk after every event is too
> slow
>>
>> The fix proposed in BUG#35542 and BUG#31665 introduces a performance issue
>> when fsyncing the master.info, relay.info and relay-log.bin* after #th
> events.
>> Although such solution has been proposed to reduce the probability of
> corrupted
>> files due to a slave-crash, the performance penalty introduced by it has
>> made the approach impractical for highly intensive workloads.
>>
>> In a nutshell, the option --syn-relay-log proposed in BUG#35542 and
> BUG#31665
>> simultaneously fsyncs master.info, relay-log.info and relay-log.bin* and
>> this is the main source of performance issues.
>>
>> This patch introduces new options that give more control to the user on
>> what should be fsynced and how often:
>> 1) (--sync-master-info, integer) which syncs the master.info after #th
> event;
>> 2) (--sync-relay-log, integer) which syncs the relay-log.bin* after #th
>> events.
>> 3) (--sync-relay-log-info, integer) which syncs the relay.info after #th
>> transactions.
>>
>> To provide both performance and increased reliability, we recommend the
> following
>> setup:
>> 1) --sync-master-info = 0 eventually the operating system will fsync it;
>> 2) --sync-relay-log = 0 eventually the operating system will fsync it;
>> 3) --sync-relay-log-info = 1 fsyncs it after every transaction;
>>
>> Notice, however, that the previous setup does not reduce the probability
> of
>> corrupted master.info and relay-log.bin*. To overcome the issue, this patch
> also
>> introduces a recovery mechanism that right after restart throws away
> relay-log.bin*
>> retrieved from a master and updates the master.info based on the
> relay.info:
>>
>
> I think it's better to state clear that the recovery mechanisam can only
> recover the incorrect binlog file and position in master.info, if other
> informations (host, port password, etc) are corrupted or incorrect, then
> this recovery mechanism will fail to work.
>
>
>> 4) (--relay-log-recovery, boolean) which enables a recovery mechanism
> that
>> throws away relay-log.bin* after a crash.
>>
>> So, it is advisable to setup: --syn-relay-log-info = 1.
>>
>
> [snip]
>
>
>