読みました pt-online-schema-change
ドキュメントを作成し、トリガーを作成してデータをチャンクにコピーし、チャンク時間秒(デフォルトでは0.5秒)で動作することを理解しました
以下のケースを考えてみましょう。
5 GBのテーブルTBL1があり、PT-ONLINE-SCHEMA-CHANGEで変更されています
PT-ONLINE-SCHEMA-CHANGEは、必要な変更を含む新しいテーブルを作成し、TBL1にトリガーを追加して、コピーを開始しました。
データの10チャンクをコピーし、サイズが「X」MBの11番目のチャンクのコピーを開始しました。ツールごとに、このチャンクは最大500ミリ秒または0.5秒でコピーされます
11番目のチャンクのコピー中に、アプリケーションは、このデータの11番目のチャンクの一部であるエフェクト行を変更する必要があるUPDATEを発行しました。
私の質問は、以下のどれがnow.original tableが今起こっているかということです。
A) Update will be blocked till the chunk be copied and then applied on original table
which gets updated through triggers on new one.
B) Update will be performed on original table and data chunk will be re copied all
over again.
オプションAが答えである場合、PT-ONLINE-SCHEMA-CHANGEをどのようにロックフリーにすることができますか?
オプションBが答えである場合、コピーされているチャンクが変更されたことをどのようにして知るのですか?
前もって感謝します。
正しく理解できれば
肝心なのは「信頼する」ことです。