GH GambleHub

Replikasiýa we eventual consistency

Replikasiýa we eventual consistency

1) Näme üçin eventual consistency

Ulgam zolaklar/sebitler boýunça paýlananda, sinhron ýazgy hemme ýerde ýokary gizlinlik we tor şowsuzlyklarynda pes elýeterlilik berýär. Eventual consistency (EC) şu sözler üçin wagtlaýyn sinhronlaşdyrmaga mümkinçilik berýär:
  • ýazgynyň gijikdirilmegi (ýerli kabul),
  • tor bölünende has gowy elýeterlilik,
  • gorizontal masştabda.

Esasy wezipe gözegçilikde saklanmaýan sazlaşykdyr: ulanyjy "gaty täze" maglumatlary görýär, domeniň üýtgemegi saklanýar, gapma-garşylyklar ýüze çykarylýar we çak edilip bilner.


2) Ylalaşygyň modelleri - müşderä näme wada berýäris

Strong: okamak iň soňky ýazgyny derrew görýär.
Bounded stale/read-not-older-than (RNOT): okamak bellikden köne däl (LSN/wersiýa/wagt).
Causal: "sebäp-netije" gatnaşyklary saklanýar (A-dan B-e çenli).
Read-Your-Writes: Müşderi soňky ýazgylaryny görýär.
"Monotonic Reads": indiki okalýan her bir okalýan "yza" gaýdyp gelmeýär.
Session: bir sessiýanyň çäginde kepillikler toplumy.
Eventual: Täze ýazgylar ýok bolsa, ähli bellikler birleşýär.

Amal: Möhüm ýollarda Session + RNOT we penjirelerde/keşlerde Eventual birleşdiriň.


3) Replikasiýa: mehanika we anti-entropy

Sinhron (kworum/RAFT): ýazgy N düwünler bilen tassyklanylandan soň üstünlikli hasaplanýar; iň az RPO, p99-dan ýokary.
Asinhron: jemleýji lider lokal, soňra magazineurnaly paýlaýar; pes gizlinlik, RPO> 0.
Fiziki (WAL/binlog): çalt, birmeňzeş.
Logic/CDC: setirler/wakalar derejesinde üýtgeşmeler akymy, çeýe marşrut, süzgüçler.
Anti-entropy: wagtal-wagtal barlamak we bejermek (Merkle-agaçlar, eşi deňeşdirmek, fon re-sync).


4) Wersiýanyň kesgitleýjileri we sebäpleriň sargytlary

Monoton wersiýalary: increment/LSN/epoch; ýönekeý, ýöne parallelizmi kodlamaýarlar.
Lamport timestamp: logiki sagatlar boýunça bölekleýin tertip.
Vector clock: paralel şahalary düzedýär we gapma-garşylykly täzelenmeleri (concurrent) kesgitlemäge mümkinçilik berýär.
Hybrid/TrueTime/Clock-SI: global tertip üçin "T-den öň däl" logikasy.

Maslahat: CRDT/konflikt täzelenmeleri üçin - vector clock; "garry däl" üçin - LSN/GTID.


5) Gapma-garşylyklar: ýüze çykarmak we çözmek

Adaty ýagdaýlar: iki sebitden bir obýekti ýazmak.

Strategiýalar:

1. Sagat/logiki möhür boýunça Last-Write-Wins (LWW) - ýönekeý, ýöne täzelenmeleri "ýitirip" biler.

2. Domen logikasy boýunça merge funksiýalary:
  • hasaplaýjy meýdanlar bukulýar (G-Counter/PN-Counter),
  • köplükler "add-wins/remove-wins",
  • summalar/balanslar - ýönekeý LWW arkaly däl-de, diňe geleşik žurnallary arkaly.
  • 3. CRDT (konwergent görnüşleri): Sanawlar üçin G-Counter, OR-Set, LWW-Register, RGA.
  • 4. Operasiýa üýtgeşmeleri (DB üçin seýrek, köplenç redaktorlar üçin).
  • 5. Manual resolution: "inbox" -da gapma-garşylyk, ulanyjy dogry wersiýany saýlaýar.

Düzgün: domeniň üýtgemegi strategiýany kesgitleýär. Pul/galyndy üçin - LWW-den gaça duruň; öwezini dolmak bilen amallardan/wakalardan peýdalanyň.


6) Ýazgylaryň kepillikleri we idempotentlik

Toparlarda idempotent açarlary (payment, withdraw, create) → gaýtalamak howpsuz.
Idempotentlik açary/seriýa belgisi boýunça "giriş" (inbox) we "çykyş" (outbox) -da duplikasiýa.
Exactly-once güýçli şertler bolmazdan elýeterli däl; at-least-once + idempotentlik bilen meşgullanyň.
Outbox/Inbox-pattern: DB-e ýazmak we wakany atomarny (lokal geleşik) çap etmek, alyjy idempotency-key boýunça gaýtadan işleýär.


7) "X-den uly däl" okalýar (RNOT)

Usullar:
  • LSN/GTID-gate: müşderi iň az wersiýany (ýazgynyň jogabyndan) iberýär, router/proxy LSN ≥ X-den geçen göçürmä, ýogsam - lidere iberýär.
  • Time-bound: "2 sekuntdan uly däl" - wersiýasyz ýönekeý SLA.
  • Session pinning: N saniye ýazylandan soň diňe lider okaýarys (Read-Your-Writes).

8) Üýtgeşmeleriň akymlary we nagt pullary utgaşdyrmak

CDC → wakalaryň tekeri (Kafka/Pulsar) → sarp edijiler (nagt pullar, indeksler, penjireler).
Keshiň maýyplygy: topiki 'invalidate: {ns}: {id}'; idempotent gaýtadan işlemek.
Rebuild/Backfill: Rebuild/Backfill: Wakalar magazineurnalyndan proýeksiýalary gözden geçiriň.


9) Saglar we kompensasiýalar (hyzmatara amallar)

EC-dünýäde uzak möhletli amallar öwezini dolmak çäreleri bilen ädimlere bölünýär:
  • Orkestr: koordinator ädimleri we olaryň öwezini dolmagy talap edýär.
  • Horeografiýa: ädimler wakalara reaksiýa bildirýärler we özleri aşakdakylary çap edýärler.

Inwariantlar (mysal): "balans ≥ 0" - ädimiň çäklerinde barlamak + ýüz dönderilende öwezini dolmak.


10) Köp sebit we tor bölünişikleri

Local-write, async-replicate: ýerli sebitde ýazgy + başgalara eltip bermek (EC).
Geo-fencing: Maglumatlar sebite "ýapyşýar" (pes gizlinlik, az gapma-garşylyklar).
CP-maglumatlar üçin kworum DB (Raft); keşler/penjireler - AP/EC.
Split-brain meýilnamasy: aragatnaşyk ýitirilen halatynda sebitler domen çäkleriniň (write fencing, kwota), soňra - reconcile çäginde işlemegini dowam etdirýärler.


11) Synlamak we SLO

Metrikler:
  • Replica lag: wagt/LSN-aralyk/offset (p50/p95/p99).
  • Staleness: bosagadan uly jogaplaryň paýy (mysal üçin> 2s ýa-da LSN
  • Conflict rate: konfliktleriň ýygylygy we üstünlikli merge.
  • Convergence time: iň ýokary derejeden soň gaýtalanýan wagt.
  • Reconcile backlog: yzda galan partiýanyň göwrümi/wagty.
  • Maglumat kategoriýalary boýunça RPO/RTO (CP/AP).
Alertler:
  • Lag> maksat, konfliktleriň köpelmegi, "uzyn" gabat gelmeýän penjireler.

12) EC üçin maglumat shemasynyň dizaýny

Her ýazgyda aýdyň wersiýa/wektor ('version', 'vc' sütünleri).
Append-only kritiki üýtgeşmeler üçin žurnallar (balanslar, hasaplamalar).
Sargyt we data üçin wakalaryň kesgitleýjileri (snowflake/ULID).
Kommutatiw tebigaty bolan meýdanlar (hasaplaýjylar, köplükler) → CRDT dalaşgärleri.
API dizaýny: if-match/etag bilen PUT, precondition bilen PATCH.


13) Saklamak we okamak patternleri

Read model/CQRS: "çeşmä" ýazmak, proýeksiýalardan okamak (yza galyp biler → "täzelenýär"...).
Stale-OK marşrutlary (katalog/lenta) vs Strict (gapjyk/çäkler).
"Sticky/Bounded-stale" (sözbaşy 'x-read-consistency').


14) Giriş çek-sanawy (0-45 gün)

0-10 gün

Maglumatlary kategoriýalaşdyrmak: CP-kritiki (pul, sargytlar) vs EUB/stale-OK (kataloglar, gözleg indeksleri).
Stiliň SLO-ny (mysal üçin "2s-den garry däl"), maksatly laglary kesgitlemek.
API-de obýektleriň we idempotency-keysleriň wersiýalaryny açyň.

11-25 gün

CDC we outbox/inbox, kesh maýyplyk ýollaryny girizmek.
RNOT (LSN-gate) we session pinning bellik-kritiki ýollara goşuň.
Iň azyndan bir merge strategiýasyny (LWW/CRDT/domen) we gapma-garşylyklar magazineurnalyny durmuşa geçiriň.

26-45 gün

Anti-entropy (barlamak/düzetmek) we stil hasabatlaryny awtomatlaşdyrmak.
Game-day geçiriň: toruň bölünmegi, gapma-garşylyklaryň köpelmegi, dikeldiş.
Dashbordlarda wizuallaşdyrmak: lag, staleness, conflict rate, convergence.


15) Anti-patternler

Möhüm üýtgemeler üçin kör LWW (pul/bal ýitirmek).
Retrada idempotency → dubly amallaryň ýoklugy.
Hemme zatda "güýçli" model → p99-yň aşa guýruklary we şowsuzlyklarda gowşaklygy.
RNOT/Session kepillikleri ýok → UX "ýalpyldawuk", ulanyjylar üýtgeşmelerini "görmeýärler".
Keshiň we çeşmäniň gizlin sinhronizasiýasy (CDC/maýyplyk ýok).
Reconcile/anti-entropy guralynyň ýoklugy - maglumatlar "asyrlar boýy" tapawutlanýar.


16) Kämillik ölçegleri

Replica lag p95 maksatly ≤ (mysal üçin, sebitiň içinde ≤ 500 ms, ≤ 2 s sebitler).
Staleness SLO "berk" ugurlarda haýyşlaryň 99% ≥ ýerine ýetirilýär.
Conflict resolution success ≥ 99. 9%, çözmegiň ortaça wagty ≤ 1 minut.
Iň ýokary derejeden soň üýtgetmek wagty - minut, sagat däl.
"Pul" amallarynyň 100% -i idempotency-açarlary we outbox/inbox bilen örtülendir.


17) Reseptler (snippetler)

If-Match/ETag (HTTP)


PUT /profile/42
If-Match: "v17"
Body: { "email": "new@example.com" }

Eger wersiýa üýtgese - '412 Precondition Failed' → müşderi gapma-garşylygy çözýär.

"LSN-den garry däl" (psevdo)


x-min-lsn: 16/B373F8D8

Router 'replay _ lsn ≥ x-min-lsn' -den göçürme saýlaýar, ýogsam - lider.

CRDT G-Counter (pikir)

Her sebit öz hasaplaýjysyny saklaýar; jemleýji - ähli komponentleriň jemi; replikasiýa - kommutatiw amal.


18) Netijenama

"Eventual consistency" hil taýdan eglişik däl-de, aňly şertnama: bir ýerde tizlik we elýeterlilik üçin täzelik töleýäris, ýöne möhüm üýtgemeleri domen strategiýalary we gurallary bilen goraýarys. Wersiýalary, idempotency, RNOT/Session kepillikleri, CDC we anti-entropy giriziň, lag/staleness/conflicts ölçäň - paýlanan ulgamyňyz hatda şowsuzlyklar we iň ýokary ýükler bilen hem çalt, durnukly we öňünden aýdyp boljak bolar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.