Greg <skygreg@gmail.com> writes:
With "kill -9 mysqld", and sync_binlog=0, I'm not really surprised since mysql will not fdatasync after each commit, right ?
Right. So this is mostly just my own academic interest, in practice it is of course real crashes/powerfailures we want to handle, not SIGKILL. If you are interested, this is my thinking: the server always does a write(2) system call on the binlog at (group) commit, even with sync_binlog=0. So even if we SIGKILL the server, the data is still in the kernel buffers (at least on Linux), and will eventually reach disk. However, you are using DRBD. I am guessing that when mysqld on one node dies, a failover is done to the other node, and this looses data in the kernel disk buffers on the first node that have not been fdatasync()'ed. So I learned a bit about DRBD, thanks ;-) - Kristian.