Sistèm modèn distribiye yo tout sou konpwomi. Pèfòmans, fyab, évolutivité, ak konsistans pa vini gratis - ou toujou peye yon pri yon kote. Se la teyorèm CAP la antre: li se pwen depa pou konprann konpwomi inevitab nan konsepsyon distribye.
Poukisa teyorèm CAP la vre? Ki sa li aktyèlman eksplike? Epi, pi enpòtan, èske li ase? Nan pòs sa a, nou pral eksplore teyorèm CAP la, limit li yo, kritik li te fè fas ak fason nouvo lide tankou PACELC ap pouse konvèsasyon an pi devan. Ann plonje nan.
Premye vèsyon teyorèm CAP la te kòmanse kòm yon deba ant ACID ak BAZ . Men, apre yon sèten tan, li te evolye, li te resevwa yon prèv fòmèl, epi li gradye yo vin teyorèm CAP la jan nou konnen li jodi a.
Teyorèm CAP la di ke yon sistèm distribiye ka satisfè omwen de sou twa pwopriyete an menm tan :
Limitasyon sa a fòse enjenyè yo fè konpwomi difisil selon objektif sistèm nan ak reyalite anviwònman distribye yo.
Konsistans nan CAP pa menm jan ak konsistans nan tranzaksyon ACID yo . Nan teyorèm CAP li refere a lineizabilite oswa konsistans fò . Sa vle di ke tout nœuds nan yon sistèm distribiye dwe toujou prezante yon sèl, ajou-a gade nan done yo , kèlkeswa ki nœuds trete demann lan. Sa vle di ke chak operasyon lekti reflete ekri ki pi resan an, kèlkeswa nod ou mande.
💡 Konsistans nan ACID, yon lòt bò, konsantre sou asire ke yon tranzaksyon pote baz done a soti nan yon eta valab nan yon lòt eta valab, swiv règ yo defini nan chema baz done a. Li plis sou fè respekte kontrent entegrite (tankou kle etranje, kontrent inik, elatriye) ak asire baz done a pa kite nan yon eta valab, menm nan fè fas a aksidan.
Disponibilite nan CAP vle di ke chak nod ki pa echèk dwe retounen yon repons pou chak demann li resevwa, kèlkeswa patisyon rezo yo . Nan lòt mo, si yon ne ki an sante jwenn yon demann, li dwe trete epi reponn a li. Sepandan, CAP pa garanti repons lan ap toujou "kòrèk" oswa ajou - li jis asire nœud la pa echwe an silans (pa egzanp, nan nœuds sistèm AP yo ta ka reponn ak done rasi pandan yon patisyon pou asire disponiblite. ).
💡 Eric Brewer (otè orijinal CAP) te dekri pwopriyete sa a yon ti jan pi fleksib kòm: "prèske tout demann yo ta dwe jwenn yon repons". Sepandan, nan prèv fòmèl CAP la, disponiblite a te vin pi sevè, ki te egzije "chak demann yo resevwa yon repons osi lontan ke ne la manyen li an sante".
Nan pratik, menm si, disponiblite se pa yon garanti absoli - li souvan depann de kontrent sistèm espesifik, tankou konbyen tan ou vle tann pou yon repons. Pou sistèm nan mond reyèl la, tan repons (oswa delè) jwe yon wòl enpòtan nan fòme SLA ou (akò nan nivo sèvis), menmsi CAP li menm pa responsab dirèkteman pou latansi. Plis sou li nan pòs blog sa a .
Tolerans patisyon se tout sou siviv echèk rezo a. Si nœuds yo pa ka kominike akòz yon divize rezo (patisyon), sistèm nan dwe toujou satisfè garanti konsistans oswa disponiblite li yo, tou depann de chwa konsepsyon li yo. Yon patisyon rive lè nœuds pa ka kominike akòz pake ki tonbe, delè, oswa rezo divize.
Sistèm distribiye pa viv nan yon mond fe ak rezo pafè. Pake yo tonbe, delè rive, ak pwen latansi yo inevitab. Poutèt sa, tolerans patisyon pa negosyab nan nenpòt sistèm distribiye - patisyon yo pral rive pi bonè oswa pita, kidonk ou pa ka "chwazi" inyore li, kèlkeswa jan li ta ka tante.
Nan CAP, tolerans patisyon pa vle di sistèm nan kontinye ap kouri tankou si pa gen anyen ki te pase. Sa vle di sistèm nan dwe deside si li priyorite disponiblite (AP) oswa konsistans (CP) pandan yon patisyon. Si ou ta inyore tolerans patisyon, ou ta esansyèlman ap bati yon sistèm monolitik ki pa distribye.
Fason ki pi fasil pou konprann CAP se konsidere yon patisyon rezo - yon sitiyasyon kote de pati nan yon sistèm distribiye pa ka kominike youn ak lòt. Nan yon senaryo konsa, sistèm nan fè fas a twa rezilta posib:
Kidonk, pandan yon patisyon , sistèm nan ka sèlman satisfè de nan twa pwopriyete yo (C, A, oswa P) . Yon fwa yo rezoud patisyon an (sa vle di nœuds yo kominike ankò), sistèm nan ka reprann tout twa pwopriyete yo, men pandan patisyon an li menm , konpwomi yo inevitab.
Yon konsekans teyorèm la pou sistèm asynchrone se ke sèlman twa konbinezon konsistans, disponiblite, ak tolerans patisyon ki posib:
Sistèm nan kalite sa a reponn a demann, men done yo retounen yo ka pa toujou ajou, ak mizajou pi dousman nan done yo men "toujou" disponib. Egzanp yon sistèm konsa se DNS, DynamoDB, ak Cassandra.
Sistèm nan kalite sa a toujou retounen done ajou, men kèk, oswa menm tout, nœuds nan sistèm nan ka pa reponn si patisyon. Li bay mizajou atomik men li ka mennen nan timeout. Baz done NoSQL tankou Google BigTable, MongoDB, HBase, ak Redis se tout sistèm nan kalite sa a.
Sistèm nan kalite sa a toujou retounen done ajou lè pa gen patisyon. Akòz dènye limit la, anjeneral, sistèm sa yo yo itilize sèlman nan yon sèl machin. Egzanp yo se baz done relasyon klasik.
An reyalite, nou chwazi ant CP ak AP paske CA se fondamantalman yon monolit san patisyon. Pou sistèm gwo echèl, konsèpteur pa ka abandone P ak Se poutèt sa gen yon chwa difisil ant C ak A.
Nan CA, echèk ne vle di konplè indisponibilite nan sèvis la. Men, sa a pa enfim évolutivité, paske nou ka klonaj monolit endepandan epi distribye chaj la sou yo
Teyorèm CAP la te yon konsèp fondamantal nan sistèm distribiye, men li pa san limit li yo. Pou tout klète li nan prezante lide nan konpwomi, teyorèm CAP a souvan te kritike pou senplifye reyalite konplèks, ki te mennen nan enkonpreyansyon ak move aplikasyon.
Youn nan kritik ki pi komen yo se ke konpwomi teyorèm CAP la - chwazi ant konsistans (C) ak disponiblite (A) - aplike sèlman lè yon patisyon rezo (P) aktyèlman rive. Nan operasyon nòmal, lè rezo a estab epi pa gen patisyon, pa gen okenn konpwomi ant konsistans ak disponiblite.
Anplis de sa, konpwomi sa yo pa inivèsèl atravè tout sistèm nan. Nan menm sistèm distribiye a:
Nuans sa a souvan pèdi nan diskisyon wo nivo sou CAP, ki mennen nan klasifikasyon twò senplifye nan sistèm kòm "CP" oswa "AP" atravè tablo a.
Yon lòt kritik enpòtan se ke teyorèm CAP la pa konte pou latansi , menm si latansi ak patisyon yo pwofondman konekte nan pratik. Pou egzanp:
Nan sistèm distribiye nan mond reyèl la, lè yon patisyon oswa gwo latansi rive, sistèm nan dwe pran yon desizyon nan yon peryòd tan : priyorite disponiblite lè li retounen yon rezilta posib, oswa priyorite konsistans nan tann pi lontan (ak potansyèlman pa reponn). View binè CAP a pa pran konpleksite nan desizyon sa yo.
Teyorèm CAP la prezante konsistans, disponiblite ak tolerans patisyon kòm pwopriyete binè—ou genyen yo oswa ou pa genyen yo. Men, nan pratik, tout twa pwopriyete egziste sou yon spectre :
Nati sa a kontinyèl nan pwopriyete yo fè CAP tro senplist pou modèl konpleksite yo nan sistèm modèn distribiye.
Pandan ke CAP te revolisyone konpreyansyon nou nan konpwomi nan sistèm distribiye, se pa mo final la sou sijè a. Teyorèm PACELC dekri pa Daniel J. Abadi a konsidere kòm yon apwòch altènatif nan konsepsyon sistèm distribiye yo. Li baze sou modèl CAP, men anplis konsistans, disponiblite, ak tolerans patisyon, li gen ladan tou latansi ak esklizyon lojik ant konbinezon konsèp sa yo.
PACELC prezante de mòd diferan nan operasyon pou sistèm distribiye:
Pandan ke patisyon yo inevitab nan sistèm distribiye yo, yo ra konpare ak defi yo ki rive pandan operasyon nòmal. Nan sistèm modèn distribiye, latansi se souvan yon pi gwo bouchon pase patisyon rezo, patikilyèman pou aplikasyon mondyal-echèl. Sa a se kote PACELC konsantre - nan adrese konpwomi ki rive lè sistèm nan opere san patisyon. Kontrèman ak CAP, ki konsantre sèlman sou konpòtman pandan senaryo echèk, PACELC mete aksan sou desizyon achitèk yo dwe pran chak jou pou balanse latansi (L) ak konsistans (C) :
Lè PACELC pwolonje konvèsasyon an pi lwen pase patisyon yo pou enkli operasyon nòmal, PACELC asire ke pèfòmans chak jou nan sistèm distribiye yo trete ak enpòtans li merite.
Fòmilasyon teyorèm CAP la te yon evènman enpòtan nan kominote a, ak etid sou enpak li sou konsepsyon sistèm distribiye yo te montre ke konsèpteur sistèm distribiye pa ta dwe limite sistèm nan a de pwopriyete - yo ta dwe fè efò pou maksimize garanti yo mande nan chak. ka patikilye. Pou rezon sa a, li rezonab divize sistèm nan an segman, chak nan yo ki gen pwòp kondisyon li yo, ak konsepsyon sistèm nan ki baze sou kondisyon ki nan chak nan segman yo.
Teyorèm CAP a te yon poto nan panse sistèm distribiye pou dè dekad. Li te ban nou yon fondasyon pou rezone sou konpwomi nannan nan konsistans, disponiblite, ak tolerans patisyon. Men, nan plizyè fason, li se yon senplifikasyon nan reyalite, asepte chwa binè ak inyore faktè kritik tankou latansi.
PACELC baze sou CAP, li rekonèt ke:
Tou de CAP ak PACELC se zouti ki gen anpil valè, men ni se yon resèt etap pa etap pou sistèm bilding. Olye de sa, yo bay modèl mantal pou evalye konpwomi ak konprann limit achitekti distribiye yo.
Mèsi paske w li!
Kirye sou yon bagay oswa ou gen lide pataje? Kite kòmantè ou anba a! Tcheke blog mwen an oswa swiv mwen atravè LinkedIn , Substack , oswa Telegram .