MDEV-232 introduces commit checkpoints in the storage engines. Such
checkpoints can be performed fully asynchronous, but current implementation
in InnoDB/XtraDB is mostly synchronous.
This task is about improving this to a fully asynchronous implementation.
In addition I want to extend the server layer binlog checkpointing so that it
does the actual writing of checkpoint event to the binlog in a separate
1. The commit_checkpoint_notify_ha() call may come from arbitrary thread in
the storage engine which may not be prepared to have lengthy binlog sync or
other stuff done in its own thread context.
2. I need to use debug_sync in the test cases to make them deterministic, but
this requires THD, and eg. innodb background log flush does not have THD.
3. Such background binlog thread will later be useful to do binlog
pre-allocation or rotation in the background, to further improve performance
and reduce stalls.