Open3

binlogとredolog

dehio3dehio3

https://qiita.com/kyou-0576/items/f581e5ec0a982a4e7100

  • binlog
    • Server層が出力するログ
    • レコードの更新内容を保存する
    • データ復元時に利用される
  • redolog
    • ストレージエンジン層(InnoDB)が出力するログ
    • ディスクアクセスは時間がかかるので、メモリ上のredo log bufferに記録したらレコード更新操作を完了させる
    • 専用のスレッドが適用なタイミングでredo log bufferの情報をディスク(redo logファイル)に書き出す
    • redo logファイルはサイズと個数が決まっているのでローテーションして利用される
  • redo logとbinlogは一致性を保つために2フェーズコミットの形で更新する
dehio3dehio3

https://aws.amazon.com/jp/blogs/database/introducing-amazon-aurora-mysql-enhanced-binary-log-binlog/

  • binlogが有効になっている場合、トランザクションに加えてbinlogを処理するためにデータベースが余分な作業が発生する
  • 各トランザクションでbinlogファイルを連続的に書き込むトランザクションのコミットワークフローの追加プロセスが発生する
  • トランザクションログとbinlogの書き込みを同期させるために、コミット時に2相コミット(2PC)が採用
  • 2相コミット(2PC)は書き込みにさらなる待ち時間を発生させる
  • これらの課題はコンピュートとストレージを分離したAurora MySQLにも継承
  • binlogファイルを書き込むときに必要な調整作業とネットワークホップが増えるため、binlogを書き込むときのパフォーマンスへの影響を増幅することがある