Greg <skygreg@gmail.com> writes:
I didn't think that sync_binlog=1 is required anymore for safe reliction.
We are always using group commit in MariaDB 10.0 for the master, so the binary log will be synced for each group commit, which is safe.
I have to use it in a DRBD config. When testing this config, I killed mysqld with SIGKILL and sync_binlog=0 and failover start binary log in old position, that caused duplicates on slaves.
With sync_binlog=1, this happens no more.
How to configure how often group commits are fdatasynced ?
Correct, sync_binlog=1 is still required to ensure consistency between binlog and innodb. With sync_binlog=1, each group commit is fdatasynced (with a single binlog fdatasync per group), no further configuration is needed. You also need innodb_flush_log_at_trx_commit=1, of course. I am a bit surprised that you got duplicates with SIGKILL of mysqld. I would have expected crashing the OS kernel (ie. power failure) would be needed for fdatasync to make any difference? - Kristian.