تکرار (Replication)

تکرار دیتابیس: Master-Slave، Multi-Master، مشکلات تأخیر تکرار و خواندن از Replica

چرا تکرار؟

سه دلیل:

الگوی Master-Slave (Primary-Replica)

نوشتن → فقط Master
خواندن → Master یا Replica ها

Master ──(کپی async)──→ Replica 1
                     ──→ Replica 2

الگوی Multi-Master

همه نودها نوشتن می‌پذیرند:

مشکل شماره ۱: تأخیر تکرار (Replication Lag)

کپی معمولاً async است:

کاربر پست می‌گذارد → Master ذخیره ✓
کاربر فوراً تایم‌لاین را می‌خواند → Replica هنوز قدیمی!
→ «پستم کجاست؟!» 😤

راه‌حل‌ها:

Failover — مردن Master

  1. تشخیص (Health Check)
  2. انتخاب Replica جدید (معمولاً به‌روزترین)
  3. ارتقا به Master + هدایت نوشتن‌ها
  4. بقیه Replica ها به جدید وصل شوند

خطر: داده‌های «در راه» از دست می‌روند — ترید‌آف RPO!

نکته مصاحبه: «خواندن از Replica» را با ذکر مشکل lag بگویید: «Replica برای خواندن، اما write-then-read از Master» — همین دقت تمایز می‌creates.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط