Semi-Synchronous Replication — primary write’ni tasdiqlashdan oldin kamida bitta yoki belgilangan replica qabulini kutadigan, ammo to‘liq synchronous commitdan yengilroq replikatsiya usuli. U taqsimlangan tizimdagi aniq consistency, replication yoki fault-handling masalasini ifodalaydi. Kafolatlar faqat termin nomidan emas, protocol modeli, failure farazlari va implementatsiya hujjatidan aniqlanadi.
Tuzilishi
Primary local logga yozadi va replica’dan log event qabul qilingani haqidagi acknowledgementni kutadi. Aniq tizimga qarab replica diskka yozgan bo‘lishi mumkin, lekin transactionni apply qilgani shart emas.
Semi-Synchronous Replication alohida algoritm yoki konfiguratsiya sifatida emas, client xulqi, storage persistence va tarmoq noaniqligi bilan birga ko‘riladi. Bir tugundagi muvaffaqiyat boshqa replica ham shu state’ni commit qilganini avtomatik anglatmaydi. Shu sabab acknowledgementning aniq ma’nosi va visible state chegarasi hujjatlashtiriladi.
Asosiy mexanizm
Asynchronous replication replica javobini kutmaydi va data loss oynasi kattaroq. Fully synchronous rejim barcha talab qilingan replica commitini kutishi mumkin. Semi-synchronous atamasining aniq kafolati vendor hujjatidan tekshiriladi.
Semi-Synchronous Replication uchun durability faqat xotiradagi acknowledgementga bog‘lanmaydi. Qaysi nuqtada log diskka yozilgani, replica nechta failure domainni qamragani va power lossdan keyin qanday tiklanishi aniqlanadi. Cloud zone yoki rack nomi mustaqil failure ekanini avtomatik kafolatlamaydi.
Nosozlik xulqi
Replica sekin yoki uzilganida primary timeoutdan so‘ng asynchronous rejimga tushishi mumkin. Failoverda acknowledged, ammo apply qilinmagan log va eski primary qaytishi bilan split-brain boshqariladi.
Semi-Synchronous Replication dizaynida safety va liveness ajratiladi. Safety buzilishi qarama-qarshi commit yoki noto‘g‘ri qiymatga, liveness buzilishi esa tizimning oldinga siljimasligiga olib keladi. Timeoutni qisqartirish livenessni tezlashtirishi mumkin, biroq sekin tarmoqda false failure va keraksiz leader almashishini oshiradi.
Sinov va kuzatuv
Semi-Synchronous Replication capacity rejasi odatiy trafikdan tashqari failure paytidagi catch-up va retry yukini ham hisoblaydi. Bir replica yo‘qolganda qolganlar client request bilan birga rebuild oqimini ko‘taradi. Backpressure va admission control queue cheksiz o‘sishidan ko‘ra bashorat qilinadigan degradation beradi.
Semi-Synchronous Replicationni tanlash workload semantikasidan boshlanadi. Hisob-kitob, inventory, user preference va analytics bir xil conflict yoki isolation talabiga ega emas. Qat’iyroq kafolat har doim eng yaxshi yechim bo‘lmasligi mumkin, chunki latency va partition paytidagi availability kamayadi; zaifroq model esa application zimmasiga merge va invariant tekshiruvini yuklaydi. Qaror texnologiya nomi bilan emas, qaysi anomaly qabul qilinishi yoki mutlaqo taqiqlanishi yozilgan jadval bilan asoslanadi.
Semi-Synchronous Replication holatini kuzatishda configuration version, role yoki epoch, commit nuqtasi, queue va log ko‘rsatkichlari birlashtiriladi. Alert operator bajara oladigan tekshiruvga bog‘lanadi: qaysi node, qaysi key yoki transaction va qaysi vaqt oralig‘i ko‘rilishi aniq yoziladi. Aggregate dashboarddan keyin xom dalil bilan tasdiqlash noto‘g‘ri tashxisni kamaytiradi.
Semi-Synchronous Replicationga oid bahoni qayta ishlab bo‘lishi uchun test topologiyasi, software versiyasi, fault injection va kutilgan invariant saqlanadi. Yakuniy natija taxmin yoki bitta log satriga emas, bir-birini tasdiqlovchi state, history va o‘lchovlarga asoslanadi. Qabul qilingan cheklovlar ham natija bilan birga yozilib, boshqa workloadga ko‘r-ko‘rona ko‘chirilmaydi.
Bog‘liq tushunchalar
replication, primary replica, synchronous replication, asynchronous replication, transaction log, failover