Comment 1 for bug 1718949

Revision history for this message
George Ormond Lorch III (gl-az) wrote :

This is likely a result of https://jira.percona.com/browse/TDB-70 and https://github.com/percona/percona-server/pull/1882/files which fixes TokuDB interaction with binlog group commit algorithm and copies InnoDB logic. Disabling durability within the binlog group commit (and 2pc since multiple engines are in use, particularly when GTID is involved). Prior to this fix in 5.7, tokudb_commit_sync = 1 did not do much, but then, TokuDB was also no properly following the binlog group commit protocol correctly so was more or less always operating in reduced durability.

You do not seem to be setting tokudb_fsync_log_period > 0 which is required now when tokudb_commit_sync == 0. tokudb_fsync_log_period == 0 basically means to TokuDB to fsync the log anytime it is required for maximum durability.

See the code in the pull request for the logic, specifically this bit in tokudb_flush_logs :
    else if (!binlog_group_commit ||
             (tokudb::sysvars::fsync_log_period == 0 &&
              tokudb::sysvars::commit_sync(NULL))) {
        error = db_env->log_flush(db_env, NULL);
        assert_always(error == 0);
    }