Database Replication: Leader-Follower and Read Replicas
Baza replikatsiyasi: yetakchi-kuzatuvchi va o'qish nusxalari
Mashhur kitobning kutubxonada BITTA emas, BIR NECHTA nusxasi borligini tasavvur qiling: bu nafaqat kitob yo'qolib qolsa (ishdan chiqish) zaxira bo'ladi, balki BIR VAQTNING o'zida bir nechta o'quvchi uni o'qishi ham mumkin bo'ladi — barchasi BITTA yagona nusxa uchun navbat kutmaydi. Database replication (baza replikatsiyasi) — bazaning bir nechta NUSXASINI turli serverlarda saqlash orqali, aynan shu ikki foydani ta'minlaydi.
Eng keng tarqalgan sxema — leader-follower (yetakchi-kuzatuvchi, ba'zan "master-replica" ham deyiladi): BITTA server (leader) barcha YOZISH so'rovlarini qabul qiladi, va o'zgarishlarni BIR YOKI BIR NECHTA follower (kuzatuvchi) serverga UZATADI. O'QISH so'rovlari esa — istalgan follower'dan (yoki leader'ning o'zidan) bajarilishi mumkin, chunki ular ma'lumotni FAQAT o'qiydi, o'zgartirmaydi.
Bu sxemaning ikki katta foydasi bor. Birinchidan, o'qish yukini TAQSIMLASH: ko'p ilovada o'qish so'rovlari yozishdan O'NLAB barobar ko'p (masalan, yangiliklar saytida — maqolani BITTA muharrir yozadi, lekin MINGLAB o'quvchi o'qiydi) — follower'lar aynan shu o'qish yukini o'z zimmasiga oladi, leader esa faqat yozishga E'TIBOR qaratadi. Ikkinchidan, ishonchlilik: agar leader ISHDAN CHIQSA, follower'lardan biri yangi leader sifatida TAYINLANISHI mumkin (bu jarayon failover deb ataladi), va tizim ishlashda davom etadi.
Lekin bu yerda MUHIM murosa bor: leader'dan follower'ga o'zgarish YETIB borishi BIROZ VAQT oladi (tarmoq orqali, Numbers Every Engineer Should Know darsida ko'rgan millisekundlar). Shu qisqa oraliqda, follower'dan o'qigan foydalanuvchi ESKIROQ ma'lumot ko'rishi mumkin — bu, Consistency Models darsida ko'rgan eventual consistencyning ANIQ misoli. Agar HAR doim eng yangi ma'lumot kerak bo'lsa (masalan, o'zingiz yozgan yozuvni DARHOL o'qish), so'rovni ATAYLAB leader'ning o'ziga yo'naltirish kerak bo'ladi.
| Leader | Follower | |
|---|---|---|
| Yozish so'rovlari | Qabul qiladi | Qabul qilmaydi (leader'ga yo'naltiriladi) |
| O'qish so'rovlari | Bajarishi mumkin | Bajarishi mumkin (yukni yengillatadi) |
| Leader o'chsa | — | Biri yangi leader bo'lib TAYINLANISHI mumkin |
Key Takeaway
Key Takeaway:
Leader-follower replikatsiyasida bitta server yozishni qabul qiladi, boshqalari uning nusxasini yuritib, o'qish yukini kamaytiradi va leader o'chsa zaxira bo'lib xizmat qiladi. Bunda follower'lar biroz eskiroq ma'lumot ko'rsatishi mumkin — bu eventual consistency'ning tabiiy natijasi.
NEXT UP
Database Sharding and Partitioning