Sazlaşyk modelleri
Ylalaşyklylyk bäsdeşlik üýtgemelerinde okyjylaryň haýsy manylary we haýsy tertipde görýändigini beýan edýär. Modeliň dogry saýlanylmagy üýtgewsizligiň, gizlinligiň, elýeterliligiň we bahanyň arasyndaky deňagramlylykdyr (PACELC). Aşakda - modeller we olaryň ulanylyşy boýunça amaly gollanma.
1) "Berk" modeller
Linearizable
Özüni alyp barşy, ähli amallar hakyky wagta hormat goýýan birmeňzeş tertipde derrew ýerine ýetirilen ýaly.
Artykmaçlyklary: ýönekeý akyl modeli, pul we özboluşlylyk üçin howpsuz.
Minuslar: kworumlar/lider → ösüş p95/p99, esasanam sebitara.
Ýüzkeýsler: balanslar, berk çäkli inwentar, özboluşly atlar/açarlar.
Sequential consistency
Ähli akymlar amallaryň birmeňzeş tertibini görýärler, ýöne hakyky wagt tertibi hökman däl. Biraz gowşak linearizable, seýrek önümlerde görkezilýär.
Serializable
Geleşikleriň (aýry-aýry amallaryň däl) käbir yzygiderli tertibine deňdir.
Plýuslar: Soraglaryň/tablisalaryň derejesinde çylşyrymly üýtgemeleriň dogrulygy.
Minuslar: has gymmat (gapma-garşylyklary blokirlemek/wersiýalaşdyrmak/tassyklamak).
Ýüzkeýsler: çylşyrymly maliýe amallary, konsistent hasaplamalary, inwentar.
Snapshot Isolation (SI)
Her geleşik üýtgewsiz suraty wagt bilen okaýar; ýazgylar "birmeňzeş setirlerde" gapma-garşy bolýar, ýöne write skew mümkin.
Artykmaçlyklary: blokirlemezden çalt okamak, durnukly hasabatlar.
Minuslar: serial däl, write skew duzagy (mysal: nobatçy lukmanlar).
Ulanyjylar: analitika, hasabatlar, CRUD-laryň köpüsi gaty üýtgemez.
2) Per-session we sebäpler kepillikleri
Read-Your-Writes (RYW)
Müşderi öz ýazgysyndan soň ony hemişe indiki okalyşlarda görýär.
Artykmaçlyklary: gowy UX (forma → tassyklama).
Minuslar: global däl, ýerli kepillik.
Monotonic Reads / Writes
Okalyşlar yza çekilmeýär; Bir müşderiniň ýazgylary iberilen tertipde ulanylýar.
Causal Consistency (sebäpler)
Eger amal başga birine bagly bolsa (A → B), hemmeler B-den öň A görýärler.
Plýuslar: Sosfidler, teswirler üçin içgysgynç.
Minuslar: marşrutlamak we sebäpleriň bellikleri has kyn (wektor sagatlary).
Ýüzkeýsler: aragatnaşyk, bilelikde redaktirlemek, wakalaryň lentalary.
3) Gowşak we gibrid modeller
Bounded Staleness
Okamak Δ t ýa-da N wersiýalardan köp bolmaly däldir.
Artykmaçlyklary: öňünden aýdyp boljak UX, sebitara gowy ylalaşyk.
Minuslar: ýazgylaryň gapma-garşylyklaryndan goramaz.
Eventual Consistency
Wagtyň geçmegi bilen ähli nusgalar birleşýär; tertibi we gijikdirilmegi kepillendirilmeýär.
Artykmaçlyklary: iň az gizlinlik/baha, ýokary elýeterlilik (AP).
Minuslar: Açyk merge gerek (CRDT/domen düzgünleri).
Ulanyjylar: nagt pullar, fidler, metrikler, halaýanlar, nen critical gollanmalar.
4) Adaty anomaliýalar we olaryň manysy
Dirty Read: gizlin maglumatlary okamak.
Repeatable däl Read: geleşigiň içinde şol bir okamak dürli manylary berýär.
Phantom: gaýtadan soranyňyzda predikata laýyk gelýän setiri peýda bolýar/ýitýär.
Write Skew (SI bilen): iki geleşik kesişýän üýtgewsizligi okaýar we "jemi 1 ≥ bolmaly" şertini bozup, dürli setirleri ýazýar.
Lost Update: Ýazgy bäsdeşiň üýtgemelerini "süpürýär".
5) Okamagyň/ýazmagyň kworumlary we derejeleri
Köp ammar 'R '/' W' derejelerini goýmaga mümkinçilik berýär (okamak/ýazmak üçin replikalaryň sany).
Kworum (R + W> N) "kesişmek" we iň soňky ýazgyny okamak üçin güýçli kepillikler berýär.
W = 1, R = 1 → pes gijikdirme, ýöne köne maglumatlar mümkin.
Sazlamak: möhüm amallar üçin - ýokary 'W' (ýa-da lider), galanlary üçin - pes 'R' tizlik.
Read-repair/Hinted handoff fonda sazlaşygy gazanmaga kömek edýär.
6) Sagatlar we tertip: sebäplere nädip "düşünýäris"
Lamport clocks: Wakalaryň bölekleýin tertibi.
Vector clocks: sebäpleri ýazga alýarlar, gapma-garşylyklary kesgitlemäge mümkinçilik berýärler.
Hybrid/TrueTime-çemeleşmeler: amallary tertipleşdirmek we bound-staleness üçin klasterdäki sagatlaryň ýaýramagyny çäklendirýär.
Wersiýalaşdyrmak: 'version/ts + actor' for merge; CRDT-de - ýapyk ýarym toparlar (kommutatiwlik/idempotentlik).
7) CRDT we domen merge
CRDT (konwertli/köpeldilýän maglumatlar) koordinasiýa bolmazdan ýakynlaşmagy kepillendirýär: G-Counter, OR-Set, LWW-Register, Map, OT/WOOT tekst wariantlary.
Haçan-da peýdaly bolsa: halaýanlar, köp bellikler, sebetler, resminamalar.
Çäklendirmeler: belli bir domen düýp manysy üçin dogry "birleşme" semantikasyny oýlap tapyň.
8) CAP/PACELC bilen baglanyşyk
Gaty modeller (Linearizable/Serializable) köp sebitde → CP-de gizlinlik ösüşi bilen (PACELC: C saýlaýarys we L töleýäris).
Gowşak/gibrid modeller → AP we/ýa-da pes L, ýöne merge/gapma-garşylyk gerek.
Gibrid: CP-invariantlar üçin ýadro + AP-proýeksiýa/okamak üçin keşler.
9) Modeli saýlamak: çek sanawy
1. Üýtgeşiklik: näme bozmaly däl? (özboluşlylygy, balansy, çäkleri).
2. Sebitlilik: ýazgylar/okalyşlar nirede ýerine ýetirilýär? (ýerli/global).
3. SLO gizlinlik boýunça: p95/p99 kritiki ýollar üçin?
4. Utgaşdyrmagyň bahasy: sebitara kworumlar bilen tölemäge taýynmy?
5. Gapma-garşylyklar: kesgitlenen merge barmy ýa-da koordinator gerekmi?
6. UX-garaşmak: RYW/monotonic/causal müşderi üçin möhümmi?
7. Syn edilişi: lag/gapma-garşylyk/könelişme derejesini nädip ölçärsiňiz?
8. Folbekler: Tor (P) bölünende näme bolýar? read-only/lokal ýazgy/nobatlar?
10) Çalt reseptler
Töleg/balans: Linearizable/Serializable, lider + kworum, gysga wagtlar; RYW okamak.
Profiller/fid: Causal/Bounded staleness + keş; Halaýanlar/hasaplaýjylar üçin CRDT; Awtor üçin RYW.
Gözleg/seljeriş: SI/Read Committed, asinhron proýeksiýalary, indeksler üçin eventual.
Global SaaS: Geo-partitioning; "öý ýazgylary" - CP, hasabatlar/kataloglar - AP.
Bilelikde redaktirlemek: sebäp/eventual + CRDT/OT; "taryhyň" saklanmagy.
11) Ylalaşyga syn etmek
Lag metrikleri: 'replication _ lag', 'staleness _ age _ ms' (p50/p95/p99).
Gapma-garşylyk: gapma-garşylyklaryň paýy, çözülmegiň ortaça wagty.
Kworumlar: 'R/W' kworumlaryň üstünligi, sebitara ýollaryň wagtlary.
Müşderi kepillikleri: RYW/monotonic - sessiýa boýunça söwda bellikleri.
12) Adaty ýalňyşlyklar
Iş esassyz Strong "hemme ýerde" talap etmek → gizlinlik we baha partlamasy.
Dual-write/CRDT → fantomlar we üýtgeşik ýitgiler bolmazdan dürli sebitlere.
UX → täze iberilen maglumatlaryň "ýitirilen" RYW/monotonikligini äsgermezlik et.
Keshleriň/proýeksiýalaryň köne bolmagyny yzarlamaň → "baky" gapma-garşylyklar.
Oýlanmadyk merge → garaşylmadyk ýitgiler/goşa gymmatlyklar.
13) Arhitekturanyň kiçi standarty
Write-core (CP): lider, kworum ýazgylary, SLO we wagtlar, magazinesurnallar.
Read-plane (AP): materiallaşdyrylan çykyşlar, TTL-keşler, read-repair.
Müşderi: sticky-session/sessiýa kepillikleri (RYW/monotonic), wersiýa bellikleri.
Gapma-garşylyk hereketlendirijisi: CRDT/domen düzgünleri, el bilen çözmek nobaty.
Gözegçilik: laglar, gapma-garşylyklar, köne okalyşlaryň paýlary.
Netije
Ylalaşygyň nusgasy - maglumatlaryň, gijikdirmegiň we elýeterliligiň arasyndaky in engineeringenerçilik şertnamasy. Invariantlardan we SLO-lardan başlaň, müşderiniň kepilliklerini, kworumlaryny, sagatlaryny we syn edilişini ýatdan çykarman, zerur ýerlerde we mümkin bolan ýerlerde has gowşak saýlaň. Modelleriň başarnykly utgaşmasy iş hakykatyny we ulanyjy ynamyny gurban bermezden, masştaby, öňünden aýdylýanlygy we durnuklylygy berýär.