MySQL の話。「Master から slave にレプリケートされた DDL が、slave 側の metadata lock によりブロックされ lock_wait_timeout を超えてエラーになった場合、master と slave でスキーマが合わなくなるのではないか?」と心配になったので調べてみた。 もう少し丁寧に書くと、次のような状況を想定している: Master で何らかの DDL の実行が完了する。 DDL が slave にレプリケートされ、slave の SQL thread が DDL を実行する。 運悪く、DDL が変更するテーブルの metadata lock を握っている別のトランザクションが存在し、DDL がブロックされる (process list に "Waiting for Table metadata lock" と出るやつ)。 DDL が lo