Моделҳои мутобиқат
Мутобиқат он чизеро, ки хонандагон мебинанд ва дар вақти тағироти рақобатӣ бо кадом тартиб тасвир мекунад. Интихоби дурусти модел мувозинати байни қатъии инвариантҳо, ниҳонӣ, мавҷудият ва арзиш (PACELC) мебошад. Дар зер дастури амалии моделҳо ва татбиқи онҳо оварда шудааст.
1) Моделҳои "Қатъӣ"
Linearizable (қавӣ)
Рафторе, ки гӯё ҳамаи амалиётҳо фавран бо тартиби ягонае, ки вақти воқеиро эҳтиром мекунанд, анҷом дода шудааст.
Тарафдор: модели оддии равонӣ, бехатар барои пул ва беҳамтоӣ.
Омӯз: кворумҳо/пешво → афзоиши p95/p99, хусусан дар минтақа.
Ҳолатҳои истифода: тавозун, инвентаризатсия бо маҳдудиятҳои сахт, номҳо/калидҳои беназир.
Мувофиқати пайдарпай
Ҳама риштаҳо тартиби якхелаи амалиётро мебинанд, аммо фармоиши вақти воқеӣ талаб карда намешавад. Каме заифтар аз linearizable, хеле кам бевосита дар маҳсулот намоиш дода мешаванд.
Serializable
Баробар ба баъзе тартиби пайдарпайи амалиётҳо (на амалиёти инфиродӣ).
Тарафдор: дурустии инвариантҳои мураккаб дар сатҳи дархост/ҷадвал.
Омӯз: гаронтар (бастани/версия/тасдиқи низоъ).
Ҳолатҳои истифода: амалиётҳои мураккаби молиявӣ, ҳисобҳои пайваста, инвентаризатсия.
Изолятсияи фаврӣ (SI)
Ҳар як амалиёт бо гузашти вақт як лаҳзаи тағйирнопазирро мехонад; вурудот дар "ҳамон сатрҳо" ихтилоф доранд, аммо навиштани skew имконпазир аст.
Тарафдор: зуд бе қулф хонда мешавад, гузоришҳои устувор.
Омӯз: сериализатсия намешавад, домро нависед (масалан: духтурони навбатдор).
Ҳолатҳоро истифода баред: таҳлил, ҳисобот, аксари CRUD-ҳо бидуни инвариантҳои сахт.
2) Кафолатҳои як сессия ва сабабӣ
Хонед-нависед (RYW)
Мизоҷ ҳамеша онро дар хонишҳои минбаъда пас аз ворид шуданаш мебинад.
Тарафдор: UX-и хуб (шакли → тасдиқ).
Омӯз: кафолати маҳаллӣ, на глобалӣ.
Хондани монотоникӣ/Менависад
Хонишҳо "бозмегарданд"; сабтҳои як муштарӣ бо тартиби ирсолшуда татбиқ карда мешаванд.
Мувофиқати сабабӣ
Агар амалиёт ба амалиёти дигар (A → B) вобаста бошад, ҳама А-ро пеш аз Б. мебинанд.
Тарафдор: интуитивӣ барои каналҳои иҷтимоӣ, шарҳҳо.
Омӯз: Тамғакоғазҳо ва сабабҳо (соатҳои векторӣ) мушкилтаранд.
Калидҳои корбар: иртибот, таҳрири муштарак, каналҳои ҳодиса.
3) Моделҳои заиф ва гибридӣ
Staleness сарҳадӣ
Хонишҳо метавонанд на бештар аз версияҳои t ё N бошанд.
Тарафдор: UX пешгӯишаванда, созишномаи хуб дар дохили минтақа.
Омӯз: Оё аз навиштани муноқишаҳо ҳимоят намекунад.
Мувофиқати ниҳоӣ
Бо мурури замон, ҳамаи нусхаҳо якҷоя мешаванд; фармоиш ва таъхир кафолат дода намешавад.
Тарафдор: Ҳадди аққал/арзиши ҳадди ақал, дастрасии баланд (AP)
Омӯз: Якҷоякунии возеҳ лозим аст (CRDT/қоидаҳои домейн).
Ҳолатҳоро истифода баред: кэшҳо, каналҳо, ченакҳо, лайкҳо, феҳристҳои интиқодӣ.
4) Аномалияҳои маъмулӣ ва чӣ маъно доранд
Хондани ифлос: хондани маълумоти истифоданашуда.
Хондани такрорнашаванда: Ҳамон хондан дар дохили транзаксия арзишҳои гуногун медиҳад.
Phantom: бо дархости такрорӣ сатри мувофиқ ба предикат пайдо мешавад/нопадид мешавад.
Skew-ро нависед (бо SI): ду амалиёт инварианти ҳамҷаворро мехонанд ва сатрҳои гуногунро менависанд, ки шарти "маблағи бояд ≥ 1" -ро вайрон мекунад.
Навсозии гумшуда: Сабт тағироти рақибро "аз нав сабт мекунад".
5) Кворумҳо ва сатҳи хондан/навиштан
Бисёр мағозаҳо ба шумо имкон медиҳанд, ки сатҳи 'R '/' W' -ро муқаррар кунед (шумораи нусхаҳо барои хондан/навиштан).
Кворум (R + W> N) "буриш" ва кафолати қавии хондани сабти охиринро медиҳад.
W = 1, R = 1 → таъхири кам, аммо маълумоти кӯҳна имконпазир аст.
Танзими: амалиёти интиқодӣ - баланд 'W' (ё пешво), боқимонда - 'R' барои суръат.
Хондан-таъмир/Интиқоли ишорашуда барои ба даст овардани пайдарҳамӣ дар замина кӯмак мекунад.
6) Соатҳо ва тартибот: чӣ гуна мо сабабҳоро "мефаҳмем"
Соатҳои лампорт: тартиби қисман рӯйдодҳо.
Соатҳои векторӣ: сабабҳоро ислоҳ кунед, муноқишаҳоро муайян кунед.
Равишҳои гибридӣ/ҳақиқӣ: паҳншавии соатҳоро дар кластер барои фармоиш ва муомилот маҳдуд кунед.
Версия: 'версия/ts + актёр' барои якҷоя кардан; дар CRDT, гурӯҳҳои нимҷазираи пӯшида (коммутатсия/idempotency).
7) CRDT ва якҷояшавии домен
CRDT (намудҳои конвергенсия/такрории маълумот) конвергенсияро бидуни ҳамоҳангсозӣ кафолат медиҳад: Вариантҳои G-Counter, OR-Set, LWW-Register, Харита, матни OT/WOOT.
Ҳангоми муфид: лайк, барчаспҳои зиёд, сабад, ҳуҷҷатҳо.
Маҳдудиятҳо: Семантикаи дурусти "муттаҳидшавӣ" -ро барои як шахси домени мушаххас таҳия кунед.
8) Иртибот бо CAP/PACELC
Моделҳои қатъӣ (Linearizable/Serializable) дар минтақаи бисёрсоҳавӣ → CP бо таъхири афзоянда (PACELC: интихоб кунед C ва пардохт L).
Моделҳои заиф/гибридӣ → AP ва/ё L паст, аммо ба муттаҳидшавӣ/ҳалли низоъ ниёз доранд.
Гибрид: CP-ядро барои инвариантҳо + AP-пешгӯиҳо/кэшҳо барои хондан.
9) Интихоби модел: рӯйхати назоратӣ
1. Инвариантҳо: чӣ набояд вайрон карда шавад? (беҳамтоӣ, мувозинат, маҳдудиятҳо).
2. Минтақа: Навиштаҳо/хонишҳо дар куҷоянд? (маҳаллӣ/глобалӣ).
3. SLO бо таъхир: p95/p99 барои роҳҳои муҳим?
4. Нархи ҳамоҳангсозӣ: омода аст бо кворумҳои байниминтақавӣ пардохт кунад?
5. Ихтилофҳо: Оё шумо якҷояшавии муайянкунанда доред ё ба шумо ҳамоҳангсоз лозим аст?
6. Интизориҳои UX: RYW/монотоникӣ/сабабӣ барои муштарӣ муҳиманд?
7. Мушоҳида: чӣ гуна шумо ақибмонӣ/низоъ/дараҷаи кӯҳнаро чен мекунед?
8. Пӯшишҳо: Вақте ки тӯр тақсим мешавад (P) чӣ мешавад? танҳо хондан/вуруд/навбати маҳаллӣ?
10) Дорухатҳои зуд
Пардохт/тавозун: Linearizable/Serializable, пешво + кворум, танаффуси кӯтоҳ; Хондани RYW.
Профилҳо/хўрокҳо: Causal/Staleness маҳдуд + кэш; CRDT барои маъқул/ҳисоб; RYW барои муаллиф.
Ҷустуҷӯ/Таҳлил: SI/Хонда шуд, пешгӯиҳои асинхронӣ, барои индексатсияҳо.
Global SAA: Тақсимоти гео; "сабтҳои хонагӣ" - CP, ҳисоботҳо/феҳристҳо - AP.
Таҳрири муштарак: сабабӣ/оқибат + CRDT/OT; нигоҳ доштани "таърих".
11) Мувофиқати мушоҳидашуда
Нишондиҳандаҳои ақибмонӣ: 'такрори _ lag', 'staleness _ age _ ms' (p50/p95/p99).
Низоъ: фоизи муноқишаҳо, вақти миёнаи ҳалли масъала.
Кворумҳо: муваффақияти кворумҳои 'R/W', танаффуси роҳҳои байниминтақавӣ.
Кафолатҳои муштариён: RYW/монотоникӣ - пайгирии барчаспҳо аз рӯи сессия.
12) Хатогиҳои маъмулӣ
Талаби қавӣ "дар ҳама ҷо" бидуни асоси тиҷорат → таркиши ниҳонӣ ва арзиш.
Дучанд-навиштан ба минтақаҳои гуногун бидуни sagas/CRDT → phantoms ва аз даст додани инвариантҳо.
Нодида гирифтани RYW/якрангӣ дар UX → маълумоти фиристодашуда "бедарак".
Пиршавии кэшҳо/пешгӯиҳо § номутобиқатии "абадӣ" -ро пайгирӣ накунед.
Якҷояшавии бадастомада → арзишҳои ногаҳонӣ/такрорӣ.
13) Меъмории мини-истинод
Навиштан-аслӣ (CP): пешво, сабтҳои кворум, SLO ва танаффус, гузоришҳо.
Ҳавопаймои хондан (AP): назари моддӣ, кэшҳои TTL, хондан-таъмир.
Мизоҷ: кафолатҳои часпак-сессия/сессия (RYW/монотоникӣ), нишонаҳои версия.
Ихтилофи муҳаррик: CRDT/қоидаҳои домейн, навбати ҳалли дастӣ.
Мониторинг: ақибмонӣ, муноқишаҳо, саҳмҳои хониши кӯҳна.
Хулоса
Модели пайдарҳамӣ шартномаи муҳандисӣ байни маълумот, таъхир ва мавҷудият мебошад. Аз инвариантҳо ва SLO-ҳо оғоз кунед, ба таври қатъӣ дар куҷо ба он ниёз дошта бошед ва дар ҷое, ки шумо метавонед заифтар бошед, кафолатҳои муштариён, кворумҳо, соатҳо ва мушоҳидаҳоро фаромӯш накунед. Маҷмӯи босалоҳияти моделҳо миқёс, пешгӯӣ ва устуворӣ медиҳад - бидуни қурбонии ҳақиқати тиҷорат ва эътимоди корбар.