レプリケーション遅延とは?
れぷりけーしょんちえん
レプリケーション遅延とは、データベースのプライマリとレプリカの間でデータ同期が追いつかず、レプリカが古い状態になっている時間差のことです。
レプリケーション遅延(Replication Lag)とは、データベースのプライマリ(マスター)サーバーへの更新が、レプリカ(スレーブ)サーバーに反映されるまでの時間的なずれのことです。この遅延が大きいほど、レプリカから読み取るデータが古くなります。
遅延が発生する主な原因は以下の通りです。
- 大量の書き込みが集中してレプリカの適用処理が追いつかない
- 大きなトランザクションや重いDDL(テーブル変更など)の実行
- プライマリとレプリカ間のネットワーク帯域の不足
- レプリカサーバーのスペック不足(シングルスレッドでの適用)
MySQLではSHOW SLAVE STATUS(またはSHOW REPLICA STATUS)のSeconds_Behind_Masterフィールドで確認でき、PostgreSQLではpg_stat_replicationビューを参照します。
レプリケーション遅延が問題になるシナリオの典型例は、書き込み直後にレプリカから読み取るケースです。書いたはずのデータが見えないという不整合がユーザーに露見することがあります。対策としては、最新性が求められる読み取りはプライマリから行う、並列レプリケーションを有効にする、レプリカのスペックを引き上げるなどが挙げられます。
使い方・例文
ECサイトで商品在庫を更新した直後にレプリカから在庫数を読むと、遅延のせいで古い在庫数が表示されてしまうことがあります。このような場面では、在庫確認をプライマリに向けることで整合性を保ちます。
この用語をシェア
最終更新: