• unknown's avatar
    WL#1595 "Optionally fsync() the binlog after every statement": · 7ece3c74
    unknown authored
    New option --sync-binlog=x (and global settable variable) which will fsync the binlog
    after every x-th disk write to it. That is, if in autocommit mode, after every x-th statement
    written to the binlog; if using transactions, after every x-th transaction written to the binlog.
    x==0 means no fsync. x==1 is the slowest.
    There is no test added for this, I have just checked that it works as --sync-binlog=1 dramatically
    slows down mysqld.
    Made sync-frm a global settable variable.
    
    
    sql/log.cc:
      every sync_binlog_period-th disk binlog write, we fsync the binlog
    sql/mysql_priv.h:
      new option sync_binlog
    sql/mysqld.cc:
      new option sync_binlog
    sql/set_var.cc:
      Making sync-frm a settable global option.
      New settable global option sync-binlog.
    sql/set_var.h:
      new global settable variable sync_binlog needs a specific ::update because it needs to take LOCK_log
    7ece3c74
mysqld.cc 219 KB