GH GambleHub

CAP և ինժեներական փոխզիջումներ

CAP-ը ասում է, որ ցանցի բաժանման պայմաններում (Partrone, P) բաշխված համակարգը չի կարող միաժամանակ ապահովել և ուժեղ համակարգումը (Consistency, C) և հասանելիությունը (Availability, A)։ Եթե P-ն կա, դուք պետք է ընտրեք կամ CP, կամ AP-ը։ Բաժանումների բացակայության դեպքում սահմանափակումը չի գործում, բայց հայտնվում են այլ փոխզիջումներ, առաջին հերթին ուշացումը (latency) և արժեքը։

Գործնական ճարտարագիտությունը դուրս է գալիս CAP-ից. Կարևոր է PACELC (եթե P-ն ընտրում ենք C կամ A; հակառակ դեպքում, մենք ընտրում ենք Latency-ի և Consistency-ի միջև), մոդելը, SLA/SLO մոդելները, Յուզքեյզները և բիզնեսի ռիսկերը։


1) Հիմնական սահմանումները (առանց փիլիսոփայության)

Համաձայն (C), բոլոր հաճախորդները տեսնում են նույն արդյունքը «կարծես» վիրահատությունները կատարվում էին հետևողականորեն (գծայնություն/strong consistency)։

Հասանելիությունը (A) 'չընկնող հանգույցի յուրաքանչյուր հարցումը ավարտվում է խելացի ժամանակում, նույնիսկ բաժանվելիս։

Բաժանումը (P) 'հանգույցների միջև կապի կորուստ կամ զգալի քայքայում։ իրականում «անխուսափելի» է մեծ մասշտաբով։

PACELC 'P-ում ընտրում ենք C կամ A; Էլսե (երբ P ոչ) ընտրում ենք L (ցածր ուշացում) կամ C (ուժեղ համաձայնություն)։


2) Ընտրության ինտուիտիվ պատկերը

CP (համաձայնությունը ավելի կարևոր է), երբ որոշ հարցումներ բաժանելիս շեղվում ենք/արգելափակում, որպեսզի չխախտենք ինվարանտները։ Հարմար է փողի, գործարքների, մնացորդների հաշվարկման համար։

AP (հասանելիությունը ավելի կարևոր է), մենք միշտ պատասխանում ենք, բայց թույլ ենք տալիս ժամանակավոր անհամաձայնություն, ապա բախումներ ենք անում (CRDT/merja կանոնները)։ Հարմար է սոճու ֆիդների, հավանումների հաշվիչների, կեշանավորված մետաղների համար։

CA (միաժամանակ C և A), հնարավոր է միայն P-ի բացակայության դեպքում, այսինքն, մինչ ցանցը առողջ է։ «CA» իրական գործողության մեջ ժամանակավոր վիճակ է, ոչ թե դիզայնի հատկություն։


3) PACELC 'մի մոռացեք ուշացման մասին

Երբ P-ն ոչ, ընտրությունը հաճախ ցածր լատենտության (L) և ուժեղ համաձայնեցման միջև (C)

Տարածաշրջանների միջև ուժեղ կոնսիստենցիան = միջմայրցամաքային քվորումները տասնյակ-հարյուր ms մինչև p95։

Տեղական ընթերցումները (ցածր L) = ավելի թույլ երաշխիքներ (read-my-writes, bounded staleness, eventae)։

PACELC-ն օգնում է բացատրել, թե ինչու «արագ և խստորեն» գլոբալ հազվադեպ է 'լույսը ոչ թե ակնթարթային է, այլ կվորումները աճում են ցանցի ծալվածությամբ։


4) Կոդավորման մոդելները (արագ սպեկտրը)

Linearizable/Strong: Կարծես մեկ հաջորդական կարգ է։

Serializable: համարժեք է գործարքների հաջորդական կարգին (ձայնագրությունների մակարդակի)։

Read-your-writes/Monotonic reads-ը իր ձայնագրությունից հետո կարդում է նոր նշանակություն։

Bounded staleness: Ընթերցումները հետ են մնում ոչ ավելի, քան N տարբերակները/Delt։

Eventium consistency: Ժամանակի ընթացքում բոլոր օրինակները համընկնում են. հակամարտությունները պետք է լուծվեն։


5) CP-ի և AP-ի պատրանքները ապրանքներում և արձանագրություններում (հայեցակարգային)

CP մոտեցումները 'քվորումային ամսագրեր/առաջնորդություն (Raft/Paxos), խիստ գործարքներ, առաջնորդի գլոբալ դիրքերը, սինխրոն կրկնօրինակումը։ Գինը P-ում հարցումների մի մասը մերժելն է և ուշացման աճը։

AP մոտեցումները 'մուլտֆիլմի վարպետը/մուլտֆիլմի առաջնորդը, CRDT, gossip-տարածումը, ասինխրոն կրկնօրինակումը, կոնֆլիկտների լուծումը (LWW, վեկտորային ժամացույցներ, հիբրիդային գործառույթներ)։ Գինը ժամանակավոր անհամաձայնություն է և կանոնների բարդությունը։

💡 Կարևոր է, որ իրական համակարգերի մեծամասնությունը CP-ն է «փողի» համար, AP-ը «ֆիդների/քեշի/ազդանշանների» համար։

6) Փոխզիջումներ մուլտֆիլմի ոլորտում

Գլոբալ առաջնորդը (CP) 'պարզ տրամաբանություն, բայց «հեռավոր» տարածքները վճարում են լատենտով։ P-ն ձայնագրությունների արգելափակում է։

Տեղական առաջնորդները + asinhron (AP), նախկին տեղական ձայնագրությունը, հետո կրկնօրինակումը։ հակամարտող փոփոխությունները պահանջում են մերջ։

Geo-partitioning: տվյալները «ապրում են» ավելի մոտ են օգտագործողին/իրավասությանը։ Քրոս շրջան միայն ագրեգատներն են։

Dance-write-ն արգելված է առանց սագի/CRDT-ի, հակառակ դեպքում ստանում են ֆանտոմներ և կրկնակի ապամոնտաժումներ։


7) Ինժեներական ինվարանտներ և բիզնես լուծումներ

Սկզբում invariants: որ երբեք չի կարող խախտել (կրկնակի սպառումը, բացասական մնացորդը, ստեղնաշարի եզակիությունը), իսկ որ «գոյատևում է» (հաշվիչ, առաջարկություններ)։

Հետո ընտրությունը

Invariant «կոշտ» www.CP-ը համապատասխան վիրահատությունների համար։

Invariant «փափուկ» wwww.AP-ը, որի հետ համապատասխան է։


8) Փոխզիջումների մեղմացման տեխնիկան

Քեշը և CQRS: Ընթերցումներ մոտ քեշի/պրոյեկցիայի միջոցով (AP), ձայնագրությունները խիստ ամսագրում (CP)։

RPO/RTO-ն փոխզիջման լեզուն է, քանի՞ տվյալներ կարող են կորցնել (RPO) և ինչպես արագ վերականգնվել (RTO)։

MedID-ը և ժամացույցը 'մոնոտոնային թայմստամպներ (Hybrid/Windowflake), ULID/Winowflake։

Սագի/TSS: բիզնես փոխհատուցում գլոբալ բլոկների փոխարեն։

CRDT-ը և հիբրիդային միջը 'հավաքածուների, հաշվիչների, «վերջին հաշվարկների» համար։

Bounded staleness: UX հավասարակշռություն և ճշգրտություն։


9) Դիտարկումը, SLO-ն և միջադեպերի կառավարումը

SLO լատենտ (p50/p95/p99) առանձին ընթերցումների/գրառումների և տարածաշրջանների համար։

SLO հասանելիությունը հաշվի առնելով տարածաշրջանի ֆեյլովերը։

Lag կրկնօրինակումներ/հակամարտություն 'հակամարտությունների մասը, լուծման միջին ժամանակը։

Ալերտները P-ի նշանով 'միջտարածաշրջանային ալիքների թայմաուտների աճը, քվորումի սխալների աճը։

Degrade-պլանները ՝ read-only ռեժիմը, տեղական ծառայությունը դելմերջեմով, «թանկ» գործառույթների անջատումը։


10) Ռազմավարության ընտրության չեկի ցուցակ

1. Ի՞ նչ ինվարիացիաներ չպետք է խախտվեն։ Ի՞ նչ է թույլատրում eventium։

2. Արդյո՞ ք անհրաժեշտ է խաչաձև ձայնագրություն ցածր լատենտ։

3. Որո՞ նք են SLO (լատենտ/հասանելիություն) և արժեքը (egress/վերարտադրողական)։

4. Թույլատրո՞ ւմ եք merge կամ միայն ավտոմատ (CRDT/կանոնները)։

5. Ո՞ րն է ցանցի ձախողման պրոֆիլը 'հաճախականությունը, տևողությունը, blast radius։

6. Կա՞ արդյոք տվյալների իրավաբանական տեղայնացում (residency)։

7. Ո՞ ր մոդելը ընդունելի է յուրաքանչյուր տեսակի տվյալների/վիրահատության համար։

8. Ինչպե՞ ս կտեսնեք ՝ ճամբարներ, հակամարտություններ, կվորումների վիճակ։

9. Ի՞ նչ է անում համակարգը P-ի դեպքում, արգելափակում է, բաժանում, կիսում։

10. Ո՞ րն է P-ից հետո տվյալների վերականգնման և վերացման պլանը։


11) Տիպիկ սխալներ

Հետապնդելով «CA ընդմիշտ»։ Առաջին P-ն պետք է ընտրի, ավելի լավ է նախօրոք։

Համաշխարհային մուլտֆիլմի վարպետը առանց մանգայի կանոնների։ Հակամարտությունները «ուտում են» տվյալները և վստահությունը։

Ուժեղ խորհրդատվություն «ամենուր»։ Ավելցուկային կվորումները ծեծում են p95/p99 և 108։

Dance-write առանց գործարքների/sag. Կորցրած ինվարանտները և ֆանտոմները։

PACELC-ի անտեսումը։ Խաղաղ ժամանակներում լատենտ է տառապում, փոթորկի մեջ 'հասանելիություն։

Հակամարտությունների և բայերի զրոյական հեռուստաչափությունը։ Խնդիրները տեսանելի են միայն օգտագործողի կողմից։


12) Արագ բաղադրատոմսեր

Express/հավասարակշռություն: CP պահեստ կվորումի հետ; գրառումները միայն առաջնորդի միջոցով; ընթերցումները կարող են քերծվել, բայց քննադատական UX-ում 'read-your-writes-ում։

Բովանդակություն/ֆիդ: AP կրկնօրինակումը + CRDT/merga կանոնները; P - տեղական սպասարկում, ապա փակցնել։

Գլոբալ SaaS: geo-partitioning 'tenae/region'; խիստ վիրահատություններ «տնային» տարածքում (CP), հաշվետվություններ/որոնում 'ասինխրոն պրոյեկտների միջոցով (AP)։

Real-tim signaling: Anycrim/edge + AP-shin; քննադատական թիմերը անցնում են հաստատված ալիքի միջոցով (CP)։

Աուդիտ/ամսագիր 'ճշմարտության միակ աղբյուրը (append-only) CP-ալիքներով, շուրջը' քեշներ և պրոյեկցիաներ։


13) Ճարտարապետության մինի-ստանդարտը (բանավոր)

Write-2019 (CP) 'առաջնորդը + քվորումային կրկնօրինակումը, խիստ ինվարանտները, սագները միջին վիրուսային էֆեկտների համար։

Read-plane (AP) 'նյութականացված ներկայացումներ, քաշներ, search ինդեքսներ, ասինխրոն նորարարություն։

Geo-routing: Օգտագործողները ընկնում են «տնային» տարածաշրջանի մեջ։ P-ի դեպքում տեղական ռեժիմը + հաջորդ կրկնօրինակումը։

Կոնֆլիկտային շարժիչ ՝ CRDT/կանոնները; կոնֆլիկտների ամսագիրը և ձեռնարկության միջոցները։

Դիտողությունն այն է, որ կվարումը, ճամբարները, ցանցային քարտեզը։


14) Ուշացման գործնական մաթեմատիկան (պարզ գնահատական)

Գլանափաթեթը 245 մզ 1000 մղոն (RTT ավելի շատ)։ Միջմայրցամաքային kvorums 24p95 հեշտ> 150-250 ms։

Ցանկացած «գլոբալ Strong» ձայնագրման համար թանկ հարցում է։ Եթե UX-ը պահանջում է <100-150 մզ, մտածեք տեղական write-home + ասինխրոն հետևանքների մասին։


15) Քաղաքականությունները բաժանման դեպքում

CP ճանապարհը 'արգելափակել ձայնագրությունները քվորումից դուրս։ ներառել read-only; ազնիվ արձաններ տալ օգտագործողին։

AP ճանապարհը 'տեղական ծառայելը։ պիտակավորել տարբերակները; վերականգնման ժամանակ 'դետերմինացված մանգա; կոնֆլիկտներ բարձրացնել վերլուծության մեջ։


Եզրակացություն

CAP-ը ոչ թե դոգմա է, այլ հիշեցում, որ ցանցի բաժանումը անխուսափելի է, և նախագիծը պետք է նախօրոք ընտրի, քան զոհաբերել փոթորկի մեջ 'հասանելիություն կամ խիստ համաձայնություն։ PACELC-ն ավելացնում է ուշացման առանցքը պարզ եղանակին։ Փորձարկեք ռազմավարությունը 'պահեք CP միջուկը, որտեղ ինվարանտները սուրբ են, և AP ինքնաթիռը այնտեղ, որտեղ ավելի կարևոր է արագությունն ու կայունությունը։ Տեղադրեք հեռաչափություն, դեգրադացիայի պլաններ և չափման գործընթացներ, և համակարգը կպահպանի տվյալները և օգտագործողի վստահությունը։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։