Strong Consistency: zerur bolanda
Strong Consistency - ähli amallaryň hakyky wagt bilen ylalaşylan ýeke-täk global tertipde derrew we yzygiderli ýerine ýetirilýän ýaly görünýän model. Ulanyjy soňky tassyklanan manyny okar we iki sany paralel müşderi biri-birinden logiki taýdan "öňe geçmez".
Berk sazlaşyk ýönekeý akyl modelini berýär we berk üýtgemeleri goraýar, ýöne utgaşdyrmagy talap edýär (kworumlar/lider), bu bolsa toruň bölünişiklerine gijä galmagy we duýgurlygy ýokarlandyrýar.
1) Haçan Strong - hökmany
Maliýe we hasaplaşyklar
Balanslar we hasapdan çykarmak: "goşa çykdajy" kabul ederliksiz.
Geçirimler we özara hasaplaşyklar: şol bir mukdar iki gezek geçirilip bilinmez.
Inwentar we çäkler
Harytlaryň/myhmanhanadaky ýerleriň/biletleriň galyndylary: negatiw gymmatlyklara geçip bolmaz.
Wagt birligi boýunça amallaryň çäkleri (karz çäkleri, API-karzlar).
Özboluşlylygy we bitewiligi
Üýtgeşik loginler/kesgitleýjiler/de-duplikasiýa düzgünleri.
Domen derejesindäki üýtgewsizler: "bölümde ≥ 1 lukman nobatçy bolmaly", "nobatda bolup bilmez> N işjeň meseleler".
Audit we üýtgemeýän žurnallar
Hakykatyň kanuny çeşmesi bolup hyzmat edýän wakalar: tertip we dolulyk kritikdir.
Eger üýtgewsizligiň bozulmagy kabul ederliksiz iş töwekgelçiligini (puluň ýitmegi, sanksiýalar, ynamyň ýitmegi) öz içine alsa - Strong Consistency-ni saýlaň.
2) Takyk "berk" näme
Linearizability (operasiýa derejesi): okamak iň soňky üstünlikli ýazgyny görýär; döwür hormatlanýar.
Serializable (tranzaksiýa derejesi): netije amallaryň yzygiderli ýerine ýetirilmegine deňdir (strong bolup biler, ýöne käwagt gaty real-time tertibi bolmazdan amala aşyrylyp bilner).
Möhüm tapawut: Serializable amallaryň derejesiniň anomaliýalaryndan (phantom/write-skew) goraýar, Linearizable bolsa ýeke amallaryň pursatlylygy we tertibi barada. Köplenç iki häsiýet hem zerurdyr (mysal üçin, pul DB + wakalar magazineurnaly).
3) Agyrlyk bahasy: PACELC we CAP
PACELC: Tor (P) bölünende C (berklik) ýa-da A (elýeterlilik) saýlamaly bolýar. Strong → CP: alternatiwany bozmakdan ýüz öwürmek ýa-da petiklemek has gowudyr. Bölünişik ýok bolsa (EL), L - koordinasiýa/kworumlar bilen p95/p99 töleýäris.
Tejribe: "inwariantlaryň özeni" üçin berk, UX-den ejir çekmezlik üçin çalt proýeksiýa/keş bar.
4) "Strong Consistency" -e nädip ýetýärler?
Liderlik we kworumlar
Ýeke-täk lider ýazgylary kabul edýär; okamak - liderde ýa-da kworum boýunça.
Ýazmak üçin 'W' we 'R' okamak üçin 'R + W> N' kworum "iň soňky" okamak mümkinçiligini ýokarlandyrýar.
Utgaşdyrmak algoritmleri
Raft/Paxos: köplügi tassyklamak, köplügi tassyklamak, termin/indeksler.
Sinhron replikasiýa: ýazgy diňe kworumda dowamlylykdan soň tassyklanylýar.
Sagat we tertip
TrueTime/Hybrid Logical Clocks (HLC): howpsuz global seriýa üçin sagatlaryň bölünişigini çäklendirmek.
Fence-tokenler/wersiýa: "säher" liderlerinden we bölünen arakesmelerden goramak.
Amallary izolirlemek
Serializable (SI + predikatlar boýunça gapma-garşylyklary/loki barlamak): phantom/write-skew goragy.
Strict-serializable: serializirlenebilirlik + hakyky wagt bilen deňeşdirilende lineirlenebilirlik.
5) Köp sebit: wariantlar we ylalaşyklar
Global lider (CP)
Ýazgylar bir öňdebaryjy sebitden geçýär; okamak - ýerli keşler/proýeksiýalar ýa-da lider arkaly.
Artykmaçlyklary: ýönekeý model. Minuslar: P - ýazgylaryň petiklenmegi bilen lidere p95/RTT.
Sebit liderleri + sinhron kworum
Birnäçe sebitlerden geo-giňeldilen kworum; her ýazgy tassyklamalara garaşýar> 50%.
Artykmaçlyklary: ýekeje "dar boýnsyz", ýokary durnuklylyk. Minuslar: kontinentara gizlinlik.
Geo-partitioning
Sebit üçin "öý" maglumatlary (tenant/ýurisdiksiýa); global amallar - saglar/agregatlar arkaly.
Plýuslar: ýerli ýazgylar üçin pes gijikdirmeler. Minuslar: maglumatlaryň çäklerini meýilleşdirmek.
6) R/W sazlamak we okamak
Ýazgylar: 'W = majority' - strong üçin standart.
Okalýan:- "Iň täze" - 'R = majority' ýa-da liderden okamak.
- L azaltmak üçin - "stale-ok" ikinji derejeli ekranlar üçin replikalardan okalýar (UX-da aç-açan bellik bilen).
- Read-repair/lease read: lideriň gysga arenalarynda berkligi ýitirmezden optimizasiýa.
7) Öndürijilik we UX
Gizlinlik: Müşderi bilen lider/kworum arasynda RTT ugrukdyryň (sebitara ýüzlerçe ms).
"Write-strong, read-fast" patterni: ýazuwda strong + okalyşlarda nagt/proýeksiýa, awtor üçin RYW bilen.
Batch/paketler: ýazgylary toparlanyň, ýöne guýruk gizlinligine gözegçilik ediň.
Zaýalanmagyň konturlary: hadysada - read-only, dogruçyl statuslar, howply mutasiýalaryň gadagan edilmegi.
8) Strict-ýoluň syn edilmegi
Metrikler
p50/p95/p99 latency: write-kworum, read-kworum, liderlik okalyşlary.
Kworumlaryň, gaýtalanmalaryň/yza gaýdyp gelişleriň, lideriň çalşylmagynyň üstünligi.
Replikasiýa lag (garaşylýan az, ýöne gözegçilik etmek hökmanydyr).
"Steýl" okamagyň paýy (eger goşulsa).
Treýsing
Spanes: "lideriň kabul etmegi", "replikasiýa", "kworum kommit".
Теги: `term`, `leader_id`, `quorum_size`, `region`.
Alertler
p95/p99 beýikligi, lideriň ýygy-ýygydan gaýtadan saýlanmagy, kworum-timeouts, split-brain görkezijileri.
9) Synaglar we bulam-bujarlyk
Jepsen meňzeş: tor bölünişikleri, gijikdirmeler, düşekler, clock-skew.
Safety-invariantlar: goşa çykdajy/negatiw galyndy/goşa bron edip bilmezlik.
Liderlik: liderden ýüz öwürmek, ýük astynda gaýtadan saýlawlar, fence-tokenler.
Okamagyň yzygiderliligi: okalandan soň derrew "täze" (RYW/linearizable read) görmeli.
10) Wakalaryň pleýbuklary
Kworumyň ýitmegi: read-only-a geçiň, müşderilere habar beriň, geo-partitioning bar bolsa "öý" sebitine ýazgy iberiň.
Gizlinligiň sebitara ýokarlanmagy: berk ýazgylaryň göwrümini wagtlaýyn azaltmak (nobata/proýeksiýada akymlaryň bir böleginiň göçmegi), traffigi lokallaşdyrmak.
Lideriň fapy: saýlawlaryň wagtyny artdyrmak, torlary/sagatlyk süýşmeleri/GC-arakesmeleri barlamak.
Split-brain: fence-tokenleri/lease-barlaglary açmak, operator derejesinde köne ýolbaşçylary duruzmak.
11) Adaty ýalňyşlyklar
Strong "hemme ýerde" talap ediň: üýtgeşikliklere ünsi jemlemegiň ýerine gizlinlik we çykdajy partlamasy.
Hakyky bölünişiklerde CA bolmaga synanyşyň: P pursatynda ulgam henizem saýlaýar, köplenç aç-açan.
Saga/koordinator bolmazdan dürli sebitlere dual-write: fantomlar we üýtgemeýän ýitgiler.
RYW ýoklugy: ulanyjy ýaňy ýazylan düýp manysyny - ynamyň peselmegini görmeýär.
Sagady äsgermezlik etmek: HLC/TrueTime-serhetsiz "bökmek" wagtyny we ýaryşlaryny almak aňsat.
Pese gaçmak meýilnamasy ýok: P-de bulam-bujar bölekleýin şowsuzlyklar başlaýar.
12) Çalt çözgütler (reseptler)
Tölegler/balanslar: lider + majority-kworum; strict-serializable amallary; gysga wagtlar, P-de gaty şowsuzlyk.
Bron etmek (oturgyçlar/yuvalar): lider arkaly write-strong, okamak - RYW bilen nagt pul; TTL-ätiýaçlyklary + TCC.
Global SaaS: geo-partition po 'tenant/region'; öý sebitinde berk amallar, hasabatlar/gözleg - proýeksiýalar arkaly.
Audit/žurnal: append-only CP-žurnal; okalmagy kesip bolýar, ýöne gözegçilik nokatlary bilen tassyklap bolýar.
13) Azyk önüminden öň çek-sanawy
- Strong talap edýän alternatiwalar berildi; galanlary - AR/proýeksiýada.
- Re modeim saýlandy: bir lider/sebitara kworum/geo-partition.
- Möhüm ýollar üçin 'W = majority', 'R = leader' majority 'sazlandy.
- UX üçin RYW/monotonic bilen üpjün edildi; aç-açan "stale-ok" okalýar.
- Kworum, laglar, gizlinlik metrikleri girizildi; p95/p99 alertleri we gaýtadan saýlanmagy.
- Degrade meýilnamasy bar: read-only, howply mutasiýalary öçürmek, "tupandan soň" nobatlar.
- Bulam-bujarlyk synaglary: bölünişikler, clock-skew, lideriň şowsuzlygy; safety-invariantlar barlandy.
- Şertnamalaryň dokumentasiýasy: näme berk, näme "yza galyp biler", önüm/goldaw üçin aragatnaşyk.
Netije
Strong Consistency - ýalňyşlyk kabul edilmeýän ýerlerde hakykaty goramak üçin gural. Gizlinlik we tupan elýeterliligi bilen utgaşdyrmak üçin bilkastlaýyn töläp, gaty üýtgemeleriň töwereginde nokat hökmünde ulanyň. Birleşdiriň: Kritik, AP okamak we tizlik üçin proýeksiýa üçin CP ýadrosy. Dogry telemetriýa, degradasiýa we synaglar bilen dogry we ulanyjy tejribesini saklarsyňyz.