GoDasturchi
Database Replication: Leader-Follower and Read Replicas

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.

LeaderFollower
Yozish so'rovlariQabul qiladiQabul qilmaydi (leader'ga yo'naltiriladi)
O'qish so'rovlariBajarishi mumkinBajarishi mumkin (yukni yengillatadi)
Leader o'chsaBiri 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

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.

LeaderFollower
Yozish so'rovlariQabul qiladiQabul qilmaydi (leader'ga yo'naltiriladi)
O'qish so'rovlariBajarishi mumkinBajarishi mumkin (yukni yengillatadi)
Leader o'chsaBiri 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