• Michael Widenius's avatar
    Added option "AND DISABLE CHECKPOINT" to "FLUSH TABLES WITH READ LOCK" · 138cbb87
    Michael Widenius authored
    This makes it possible to do safe multi volume snapshots as long as one snapshots the volume with the transaction logs last.
    
    
    include/mysql_com.h:
      Added REFRESH_CHECKPOINT
    mysql-test/r/flush.result:
      Added test of new FLUSH TABLES syntax + calls to checkpoint_status handler calls
    mysql-test/t/flush.test:
      Added test of new FLUSH TABLES syntax + calls to checkpoint_status handler calls
    sql/handler.cc:
      Added code to call checkpoint_state for all handlertons that supports it
    sql/handler.h:
      Added new checkpoint_state() handlerton call to temporarly disable checkpoints.
    sql/lex.h:
      Added CHECKPOINT keyword
    sql/sql_yacc.yy:
      Added support for FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT
    storage/maria/ha_maria.cc:
      Added handlerton call to disable checkpoints.
    storage/maria/ma_checkpoint.c:
      Don't do checkpoint if checkpoints are disabled.
    storage/maria/ma_static.c:
      Added maria_checkpoint_disabled
    storage/maria/maria_def.h:
      Added maria_checkpoint_disabled
    storage/xtradb/handler/ha_innodb.cc:
      Added handlerton call to disable checkpoints.
    storage/xtradb/include/log0log.h:
      Added option to log_checkpoint() to allow one to ignore not critical checkpoints during the time checkpoints are disabled.
    storage/xtradb/log/log0log.c:
      Added code to allow one to disable checkpoints during a FLUSH TABLES ... DISABLE CHECKPOINT
      This was done by adding a new argument to log_checkpoint() which tells us when the checkpoint is called by srv_master_thread (which are safe to ignore)
    storage/xtradb/srv/srv0srv.c:
      Tell log_checkpoint() that checkpoints from srv_master_thread() are safe to ignore (will just delay recovery time a bit).
    138cbb87
ha_maria.cc 120 KB