Bosh sahifa Wiki Replica

Replica

Replica — ma’lumot partitioni yoki shardning boshqa nodeda saqlanadigan qo‘shimcha nusxasidir. U asosiy nusxa ishlamay qolganda xizmatni davom ettirish, o‘qish yukini taqsimlash va tiklanish vaqtini qisqartirishga xizmat qiladi. Replica backup bilan bir xil emas: noto‘g‘ri o‘chirish yoki buzilgan yozuv ko‘pincha replicalarga ham tarqaladi.

Yozuvni ko‘paytirish

Primary operatsiyani tartiblaydi va replica nusxalarga yuboradi. Synchronous replication client javobidan oldin belgilangan replicalar tasdig‘ini kutadi; latency yuqoriroq, ammo tasdiqlangan yozuvni yo‘qotish oynasi kichikroq bo‘ladi. Asynchronous model tez javob beradi, lekin primary javobdan keyin, replica yetib olmasdan yo‘qolsa so‘nggi yozuvlar yo‘qolishi mumkin.

Quorum asosidagi tizim N nusxadan W yozuv va R o‘qish tasdig‘ini talab qilishi mumkin. W + R > N ko‘pincha yangi qiymatni ko‘rish imkonini oshiradi, biroq network partition, clock va conflict resolution semantikasi baribir hisobga olinadi.

Failover

Primary ishlamay qolganda sog‘lom va yetarlicha yangi replica yangi primary sifatida saylanadi. Election term yoki epoch eski primaryning keyin qaytib kelib yozuv qabul qilishini cheklaydi. Fencing bo‘lmasa split-brain paydo bo‘lib, ikki primary bir vaqtda turli qiymat yozishi mumkin.

Failover paytida qisqa write unavailability yuz berishi mumkin. Client retry qilsa oldingi operatsiya primaryda bajarilgan-bajarilmaganini bilmasligi mumkin; idempotency key duplicate side effectni kamaytiradi. Yangi primaryga o‘tgan o‘qishlar consistency darajasiga qarab eski yoki yangi holatni ko‘rishi mumkin.

O‘qish yukini taqsimlash

Search tizimida query primary yoki replica sharddan bajarilishi mumkin. Coordinator navbat, node locality yoki adaptive statistikaga qarab nusxani tanlaydi. Replica sonini oshirish read throughputni ko‘paytiradi, lekin har yozuv uchun network va disk ishlari ham ortadi.

Read replica database tizimida analytics querylarni primarydan ajratadi. Replication lag mavjud bo‘lsa foydalanuvchi yangi yozgan qiymatini darhol ko‘rmasligi mumkin. Read-after-write talabi bo‘lgan oqim primaryga yo‘naltiriladi yoki session token bilan yetarli offsetga yetgan replica tanlanadi.

Joylashtirish va failure domain

Replica primary bilan bir hostda tursa disk yoki host nosozligidan himoya bermaydi. Allocation awareness nusxalarni rack, zona yoki regionlar bo‘yicha ajratadi. Regionlararo replication latency va bandwidth xarajatini oshiradi, lekin butun hudud uzilishiga chidamlilik beradi.

Replica soni mavjud node va failure domain soniga mos bo‘lishi kerak. Ikki nodeli clusterda primarydan tashqari ikki replica belgilansa bittasi unassigned qoladi. Unassigned holat availability maqsadi bajarilmayotganini ko‘rsatadi, garchi primary xizmat ko‘rsatayotgan bo‘lsa ham.

Tiklanish va tekshiruv

Yangi replica snapshot yoki primary segmentlaridan to‘liq nusxa olib, keyin transaction log orqali so‘nggi operatsiyalarni yetib oladi. Recovery katta network va disk sarflaydi; throttling production trafficni himoya qiladi. Checksum bit rot yoki uzatishdagi buzilishni aniqlaydi.

Monitoring replica lag, in-sync holat, recovery progress, promotion soni va rejected write ko‘rsatkichlarini qamrab oladi. Backup esa alohida vaqt nuqtasini saqlab, operator xatosidan qaytishga imkon beradi. Replica va backup birgalikda availability hamda recoverabilityni ta’minlaydi.

Stale nusxa va conflict

Uzoq uzilgan replica avtomatik ravishda in-sync ro‘yxatidan chiqarilishi mumkin. U qaytganda o‘zidagi eski operatsiyalarni primaryga majburan bermaydi, balki authoritative historydan qayta sinxronlanadi. Multi-leader yoki offline-write tizimida esa bir obyektning ikki versiyasi paydo bo‘lishi mumkin. Last-write-wins sodda, lekin clock drift bilan qonuniy yozuvni yo‘qotadi; version vector, merge yoki application conflict resolver aniq domain semantikasini talab qiladi. Conflict soni va resolution turi audit qilinadi.

Bog‘liq tushunchalar

Primary, Replication, Failover, Quorum, Shard, Replication lag, Backup