PACELC-sætning
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 17. maj 2021; checks kræver
6 redigeringer .
PACELC-sætningen er en udvidelse af CAP-sætningen , som siger, at man ved netværksadskillelse (P) i et distribueret computersystem skal vælge mellem tilgængelighed (A) og konsistens (C) (ifølge CAP-sætningen), men under alle omstændigheder, selvom systemet fungerer normalt i fravær af adskillelse (E), skal man vælge mellem forsinkelser (L) og konsistens (C).
Beskrivelse
PACELC-sætningen bygger på CAP-sætningen . Begge teoremer beskriver de begrænsninger og afvejninger, som distribuerede databaser har med hensyn til konsistens, tilgængelighed og partitionering. PACELC-sætningen siger dog, at der er en afvejning mellem latens og konsistens selv i fravær af partitionering, hvilket giver et mere komplet billede af de mulige afvejninger for distribuerede systemer. [en]
Kravet om høj tilgængelighed indebærer, at systemet skal replikere data. Mens et distribueret system replikerer data, er der en afvejning mellem konsistens og latens.
PACELC-sætningen blev første gang beskrevet af Daniel J. Abadi fra Yale University i 2010 i et blogindlæg [2] og også som en artikel i 2012 [1] . Hovedformålet med PACELC-sætningen er at adressere hans afhandling "At ignorere behovet for at vælge mellem konsistens og latens i replikerede systemer er en stor udeladelse [inden for CAP], eftersom behovet for dette valg altid er til stede under driften af systemet, mens CAP kun er relevant for det diskuterede sjældne tilfælde af netværksadskillelse.
Evaluering af hoved-DBMS i henhold til PACELC-sætningen
DBMS estimater for [3]
- Som standard er Dynamo, Cassandra , Riak og Cosmos DB PA/EL-systemer: Når netværket opdeles, mister de kohærens for højere tilgængelighed, og under normal drift mister de kohærens for lavere latenstid.
- Fuldt ACID-systemer som VoltDB /H-Store og Megastore er PC/EC: de giver ikke op på konsistens og vil være villige til at betale med tilgængelighed og latens for at opnå dette. BigTable og relaterede systemer som HBase er også PC/EC.
- Couchbase tilbyder en række konsistens- og tilgængelighedsmuligheder for mellemtid samt en række muligheder for latency og ikke-opdelt konsistens. I modsætning til de fleste andre databaser har Couchbase ikke et enkelt sæt API'er og replikerer ikke alle datatjenester ensartet. Til skrivning foretrækker Couchbase konsistens frem for tilgængelighed, hvilket gør det formelt til CP, men til læsning er der mere brugerkontrolleret variabilitet afhængigt af indeksreplikering, ønsket konsistensniveau og adgangstype (enkeltdokumentsøgning vs. rækkeviddescanning vs. fuldtekst søgning osv.) .) . Oven i det er der yderligere variabilitet afhængigt af cross-datacenter-replikering (XDCR), som tager flere CP-klynger og forbinder dem til asynkron replikering, og Couchbase Lite, som er en indlejret database og skaber en fuldt multi-master (med versionering). ) distribueret topologi.
- Cosmos DB understøtter fem konfigurerbare konsistensniveauer, der giver dig mulighed for at vælge mellem C/A under netværksopdeling og L/C under normal drift. Cosmos DB overtræder aldrig det angivne konsistensniveau, hvorfor det formelt er en CP.
- MongoDB kan klassificeres som et PA/EC-system. I basistilfældet garanterer systemet, at læsning og skrivning er konsistente.
- PNUTS er et PC/EL-system.
DDBS
|
P+A
|
P+C
|
E+L
|
E+C
|
Dynamo
|
Ja
|
|
ja [a]
|
|
Cassandra
|
Ja
|
|
ja [a]
|
|
Cosmos DB
|
Ja
|
|
Ja
|
|
Sofabase
|
|
Ja
|
Ja
|
Ja
|
Riak
|
Ja
|
|
ja [a]
|
|
VoltDB/H Butik
|
|
Ja
|
|
Ja
|
Mega butik
|
|
Ja
|
|
Ja
|
MongoDB
|
Ja
|
|
|
Ja
|
PNUTS
|
|
Ja
|
Ja
|
|
Se også
Noter
- ↑ 1 2 3 Dynamo, Cassandra og Riak har indstillinger til at styre valget mellem L og C [3]
Kilder
- ↑ 1 2 Daniel J. Abadi. Konsistens-afvejninger i moderne distribueret databasesystemdesign // Yale University. - 2012. - 25. januar. Arkiveret fra originalen den 16. maj 2017.
- ↑ Daniel J. Abadi. DBMS Musings: Problemer med CAP og Yahoos lidet kendte NoSQL-system . dbmsmusings.blogspot.ie (23. april 2010). Hentet 11. september 2016. Arkiveret fra originalen 6. september 2016. (ubestemt)
- ↑ 1 2 Arinto Murdopo. Konsistens-afvejninger i moderne distribueret databasesystemdesign . - 2012. - 17. april. Arkiveret fra originalen den 22. august 2016.
Links