Повернутися до всіх запитань

Що таке replica lag?

Devs Hive

Devs Hive

Зустрічали на інтервʼю: 1 користувач

Коротка відповідь

Replica lag — це затримка між зміною даних в основній базі та появою цих змін на репліці. Через неї запит до репліки може повернути застарілі дані, хоча зміни вже успішно збережені. Якщо потрібні актуальні дані одразу після запису, їх можна прочитати з основної бази.

Replica lag — це затримка, з якою зміни з основної бази даних потрапляють до її копії — репліки.

Уявімо, що ми розробляємо інтернет-магазин і використовуємо дві бази:

  1. Основна база (primary) — приймає зміни: нові замовлення, оновлення цін та інші записи.
  2. Репліка (read replica) — отримує копію цих даних і обслуговує запити на читання, щоб зменшити навантаження на основну базу.

Користувач змінює адресу доставки й одразу оновлює сторінку. Нову адресу вже збережено в основній базі, але запит на читання потрапляє на репліку, яка ще не отримала цю зміну.

У результаті користувач бачить стару адресу, хоча збереження пройшло успішно. Через деякий час репліка наздожене основну базу, і адреса стане актуальною.

Чому виникає затримка?

При асинхронній реплікації основна база підтверджує збереження, не чекаючи, поки репліка застосує зміни. Їх передавання та обробка потребують часу. Через повільну мережу або високе навантаження затримка може збільшуватися.

Як із цим працювати?

Якщо важливо одразу побачити щойно збережені дані, такий запит можна направити в основну базу. Наприклад, після зміни адреси чи створення замовлення.

Важливий нюанс: replica lag не обов’язково означає втрату даних. Репліка просто може тимчасово повертати застарілу інформацію, і це потрібно враховувати під час розробки.

Зустрічав на інтервʼю?

Повʼязані питання

Коментарі (0)

Увійдіть, щоб залишити коментар

Поки що немає коментарів. Будьте першим!