本文へスキップ

レプリケーション遅延とは?

れぷりけーしょんちえん

レプリケーション遅延とは、データベースのプライマリとレプリカの間でデータ同期が追いつかず、レプリカが古い状態になっている時間差のことです。

レプリケーション遅延(Replication Lag)とは、データベースのプライマリ(マスター)サーバーへの更新が、レプリカ(スレーブ)サーバーに反映されるまでの時間的なずれのことです。この遅延が大きいほど、レプリカから読み取るデータが古くなります。

遅延が発生する主な原因は以下の通りです。

  • 大量の書き込みが集中してレプリカの適用処理が追いつかない
  • 大きなトランザクションや重いDDL(テーブル変更など)の実行
  • プライマリとレプリカ間のネットワーク帯域の不足
  • レプリカサーバーのスペック不足(シングルスレッドでの適用)

MySQLではSHOW SLAVE STATUS(またはSHOW REPLICA STATUS)のSeconds_Behind_Masterフィールドで確認でき、PostgreSQLではpg_stat_replicationビューを参照します。

レプリケーション遅延が問題になるシナリオの典型例は、書き込み直後にレプリカから読み取るケースです。書いたはずのデータが見えないという不整合がユーザーに露見することがあります。対策としては、最新性が求められる読み取りはプライマリから行う、並列レプリケーションを有効にする、レプリカのスペックを引き上げるなどが挙げられます。

使い方・例文

ECサイトで商品在庫を更新した直後にレプリカから在庫数を読むと、遅延のせいで古い在庫数が表示されてしまうことがあります。このような場面では、在庫確認をプライマリに向けることで整合性を保ちます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語