C.A.P.-lause
- lause (tunnetaan myös nimellä Brewerin teoreema ) on heuristinen lausunto, jonka mukaan enintään kaksi seuraavista kolmesta ominaisuudesta voidaan tarjota
missä tahansa hajautetun laskennan toteutuksessa:
- tietojen johdonmukaisuus ( englanniksi johdonmukaisuus ) - kaikissa laskentasolmuissa yhdellä hetkellä tiedot eivät ole ristiriidassa keskenään;
- saatavuus - kaikki pyynnöt hajautettuun järjestelmään päättyvät oikeaan vastaukseen, mutta ilman takuuta, että kaikkien järjestelmäsolmujen vastaukset ovat samat;
- osion toleranssi - hajautetun järjestelmän jakaminen useisiin erillisiin osiin ei johda virheelliseen vastaukseen kustakin osiosta .
Lauseen nimessä oleva lyhenne CAP muodostuu näiden kolmen ominaisuuden englanninkielisten nimien ensimmäisistä kirjaimista.
Periaatteen ehdotti UC Berkeleyn professori Eric Brewer heinäkuussa 2000 [1] [2], ja se saavutti myöhemmin laajan suosion ja tunnustuksen hajautettujen tietojenkäsittelyasiantuntijoiden keskuudessa [3] [4] . NoSQL - konsepti , jonka puitteissa luodaan hajautettuja ei- tapahtumallisia tietokantojen hallintajärjestelmiä , käyttää usein tätä periaatetta perusteena tietojen johdonmukaisuuden epäonnistumisen väistämättömyydelle [5] [6] [7] . Monet tiedemiehet [8] ja harjoittajat [9] kuitenkin arvostelevat CAP-lausetta sen löyhästä tulkinnasta ja jopa epäluotettavuudesta siinä mielessä, missä se on yleistä yhteisössä.
Perustelut
Vuonna 2002 Seth Gilbert ja Nancy Lynch Massachusetts Institute of Technologysta valitsivat asynkronisen ja synkronisen hajautetun laskennan muodolliset mallit, jotka osoittavat CAP-lauseen täyttymisen ilman synkronointia (yhteinen kello) hajautetun järjestelmän solmuissa ja perustavanlaatuinen mahdollisuus kompromissiin osittain synkronisissa järjestelmissä [10] . Tässä työssä "yhtenäisyys" CAP-lauseen merkityksessä korreloi kahden ensimmäisen vaatimuksen, ACID - atomisuuden ja johdonmukaisuuden , täyttymisen kanssa . Jatkossa monet harjoittajat pitivät tätä työtä todisteena CAP-lauseesta [4] [11] [3] .
Seuraukset
CAP-lauseen näkökulmasta hajautetut järjestelmät, riippuen käytännössä tuetuista ominaisuuksista, kolmesta mahdollisesta, jakautuvat kolmeen luokkaan - CA, CP, AP.
CA-luokan järjestelmässä data on johdonmukaista ja saatavilla kaikissa solmuissa, samalla kun se uhraa kestävyyttä osioinnin vuoksi. Tällaiset järjestelmät ovat mahdollisia perustuen teknisiin ohjelmistoihin, jotka tukevat transaktiota ACID :n mielessä , esimerkkejä tällaisista järjestelmistä voivat olla klusteroituihin tietokantojen hallintajärjestelmiin tai hajautettuun hakemistopalveluun LDAP [12] perustuvat ratkaisut .
CP-luokan järjestelmä antaa joka hetki kokonaisvaltaisen tuloksen ja pystyy toimimaan rappeutumisolosuhteissa, mutta saavuttaa tämän saatavuuden kustannuksella: se ei välttämättä vastaa pyyntöön. Osioihin jakamisen sietokyky edellyttää muutosten päällekkäisyyttä kaikissa järjestelmän solmuissa, minkä yhteydessä havaitaan käytännön tarkoituksenmukaisuus käyttää hajautettuja pessimistisiä lukkoja tällaisissa järjestelmissä eheyden säilyttämiseksi [13] .
AP-luokan järjestelmässä eheyttä ei taata, mutta saavutettavuuden ja osiointikestävyyden ehdot täyttyvät. Vaikka tällaiset järjestelmät ovat olleet tiedossa jo kauan ennen CAP-periaatteen muotoilemista (esimerkiksi hajautetut verkkovälimuistit tai DNS ) [14] , tällä ominaisuuksilla varustettujen ratkaisujen kasvava suosio liittyy juuri CAP-teoreeman leviämiseen. . Siten useimmat NoSQL-järjestelmät eivät pohjimmiltaan takaa tietojen eheyttä, ja viittaavat CAP-lauseeseen motiivina tällaiselle rajoitukselle [5] . AP-järjestelmien rakentamisen tehtävänä on tarjota jonkinlainen käytännöllisesti katsoen tarkoituksenmukainen tietojen eheyden taso, tässä mielessä AP-järjestelmien sanotaan olevan "lopulta johdonmukaisia " [ 15] tai "heikosti johdonmukaisia" ( eng . heikko konsistenssi ) [16] .
BASE-arkkitehtuuri
2000-luvun jälkipuoliskolla muotoiltiin lähestymistapa hajautettujen järjestelmien rakentamiseen, joissa eheys- ja saatavuusvaatimukset eivät täysin täyty, ja sitä kutsuttiin BASE -lyhenteeksi ( englannin sanasta Basically Available, Soft-state, Lopulta johdonmukainen - peruskäytettävyys, epävakaa tila, johdonmukaisuus lopulta), kun taas tämä lähestymistapa on suoraan ACID :n vastainen [17] . Perussaatavuus viittaa lähestymistapaan sovelluksen suunnitteluun siten, että joidenkin solmujen vika johtaa palvelun estoon vain pienessä osassa istuntoja, samalla kun saatavuus säilyy useimmissa tapauksissa [ 18] . Haihtuva tila tarkoittaa kykyä uhrata istunnon tilan (kuten valintojen välitulokset, navigointitiedot, konteksti) pitkäaikainen tallennus, samalla kun keskitytään päivittämään vain kriittisiä toimintoja. Johdonmukaisuus, joka viime kädessä tulkitaan mahdolliseksi tietojen epäjohdonmukaisuuteen joissakin tapauksissa, mutta samalla kun varmistetaan yksimielisyys käytännössä ennakoitavissa olevassa ajassa, merkittävä määrä riippumatonta tutkimusta on omistettu [19] [20] .
Muistiinpanot
- ↑ Panimo, 2000 .
- ↑ Gilbert, Lynch, 2002 , PODC 2000:ssa Brewer esitti kutsutussa puheessa seuraavan olettamuksen: verkkopalvelun on mahdotonta tarjota kolmea seuraavaa takuuta: • Johdonmukaisuus • Saatavuus • Osion sieto, s. 55.
- ↑ 1 2 White Paper Beating the CAP Theorem (englanniksi) ( PDF ) (linkki ei saatavilla) . genedb.com (17. huhtikuuta 2011). Haettu 7. kesäkuuta 2011. Arkistoitu alkuperäisestä 28. kesäkuuta 2011.
- ↑ 1 2 Browne, Julian Brewerin CAP-lause ( 11. tammikuuta 2009). Haettu 7. kesäkuuta 2011. Arkistoitu alkuperäisestä 1. elokuuta 2012.
- ↑ 1 2 Brewer, 2010 , Laaja-aluejärjestelmien suunnittelijat, joissa verkkoosiot katsotaan väistämättömiksi, tietävät, että niillä ei voi olla sekä käytettävyyttä että yhdenmukaisuutta, joten he voivat nyt perustella heikomman johdonmukaisuuden. NoSQL-liikkeen nousu ("Not Only SQL") on tämän vapauden ilmaus, s. 335.
- ↑ Rice, 2011 , Tämä olettamus tunnetaan nykyään yleisesti CAP-lauseena, ja se on yksi tärkeimmistä argumenteista, miksi perinteiset relaatiotietokannat, jotka tarjoavat vahvat ACID-takuut (atomitapahtumat, transaktioiden johdonmukaisuus ja eristäminen sekä tietojen kestävyystekniikat) eivät voi tarjota molempia osioita. laajamittaisten hajautettujen sovellusten vaatima toleranssi ja saatavuus, s. 49.
- ↑ Kuznetsov, 2011 , Vakavampi "teoreettinen" perusta NoSQL-kehitykselle, jossa tiedonhallintajärjestelmien yleisesti hyväksytyt hyödylliset ominaisuudet uhrataan näiden järjestelmien saatavuuden vuoksi, on ns. "CAP-teoreema", jonka Eric muotoili ensimmäisenä. Brewer, s. 191.
- ↑ Kuznetsov, 2011 , Laitan sanan lauseen lainausmerkkeihin, koska en voi tunnistaa lausetta nimeltä Brewer lauseeksi, koska ongelmasta ei ole selkeää ja ainakin hieman muodollista ilmaisua ... mutta yleisesti uskotaan, että se tarkoittaa mahdotonta tukea yhdessä hajautetussa tiedonhallintajärjestelmässä tietojen johdonmukaisuuden (Consistency), käytettävyyden (Availability) ja verkon erottelukestävyyden (Osiointi), s. 191-192.
- ↑ Rice, 2011 , Miksi monet johtavista sosiaalisen verkostoitumisen sivustoista (Facebook, MySpace, Twitter), verkkokauppasivustoista (hotellin varausjärjestelmät ja ostossivustot) ja suuret pankkisovellukset toteutetaan edelleen perinteisten tietokantajärjestelmien, kuten MySQL, avulla (Facebook, Twitter) tai SQL Server (MySpace, Choice Hotels International, Bank Itau) uusien NoSQL-järjestelmien sijaan? … Korkean tason vastaus on, että sovellusarkkitehtuuri painaa edelleen samoja kompromisseja, joita CAP-lause vaatii, s. viisikymmentä.
- ↑ Gilbert, Lynch, 2002 , Asynkronisessa mallissa, kun kelloja ei ole saatavilla, mahdottomuustulos on melko vahva: on mahdotonta tarjota johdonmukaista dataa, vaikka sallittaisiin vanhentuneiden tietojen palauttaminen, kun viestit katoavat. Osittain synkronisissa malleissa on kuitenkin mahdollista saavuttaa käytännöllinen kompromissi johdonmukaisuuden ja saatavuuden välillä, s. 59.
- ↑ Grigorik, 2010 , Ongelmana on, että Eric Brewerin ehdottama ja Seth Gilbertin ja Nancy Lynchin myöhemmin todistama CAP-teoreema osoittaa, että näitä kolmea vaatimusta on mahdotonta saavuttaa samanaikaisesti.
- ↑ Carter, 2011 , Jotkut CA-järjestelmät sisältävät: yhden sivuston tietokannat, klusteritietokannat ja LDAP.
- ↑ Demidov, 2010 , CP (denial of service) on lähestymistapa, jossa on päällekkäisyyttä, tiukka ACID-yhtenäisyys ja muutosten synkroninen replikointi pessimististä estomenetelmää käyttäen.
- ↑ Carter, 2011 , Jotkut tukiasemajärjestelmät sisältävät: Web-välimuistijärjestelmät ja DNS-järjestelmän (Domain Name System).
- ↑ Carter, 2011 , Lopullinen johdonmukaisuus – lukutoiminnon suorittaminen voi antaa asiakkaalle vanhentuneita tietoja, mutta kaikki kirjoitukset leviävät lopulta koko järjestelmän läpi.
- ↑ Grigorik, 2010 , YMP merkitsee heikkoa johdonmukaisuutta.
- ↑ Pritchett, 2008 , Jos ACID tarjoaa johdonmukaisuusvaihtoehdon osioiduille tietokannoille, niin miten saavutetaan sen sijaan saatavuus? Yksi vastaus on BASE (periaatteessa saatavilla, pehmeä tila, lopulta johdonmukainen). BASE on täysin päinvastainen kuin ACID.
- ↑ Pritchett, 2008 , BASE:n saatavuus saavutetaan tukemalla osittaisia vikoja ilman täydellistä järjestelmävikaa. Tässä on yksinkertainen esimerkki: jos käyttäjät on jaettu viiteen tietokantapalvelimeen, BASE-suunnittelu rohkaisee luomaan toimintoja siten, että käyttäjätietokannan vika vaikuttaa vain 20 prosenttiin kyseisen isäntäkoneen käyttäjistä.
- ↑ Kivenmurtaja, 2010 .
- ↑ Vogels, 2008 .
Kirjallisuus
- Brewer, Eric A. Kohti vankkoja hajautettuja järjestelmiä // Proceedings of XIX vuotuinen ACM symposium on Principles of distributed computing. - Portland, OR : ACM , 2000. - Voi. 19 , ei. 7 . - doi : 10.1145/343477.343502 .
- Brewer, Eric A. Tietty vapaus: ajatuksia CAP-lauseesta // XXIX ACM SIGACT-SIGOPS -symposiumin julkaisu hajautetun laskennan periaatteista. - N. Y .: ACM , 2010. - Iss. 29 , ei. 1 . - s. 335-336 . - ISBN 978-1-60558-888-9 . - doi : 10.1145/1835698.1835701 .
- Carter, Andrew. CAP - lause sellaisena kuin se koskee nykyaikaisia NoSQL-tallennusjärjestelmiä . Memorial University (22. toukokuuta 2011). Haettu: 11. kesäkuuta 2011. (linkki, jota ei voi käyttää)
- Demidov A.A. Hajautettujen järjestelmien suunnittelu objektitietorakenteiden käsittelyyn // XII konferenssin aineistoa RCDL. - Kazan : Kazanin osavaltion yliopisto , 2010 . - Ongelma. 12 . - S. 441-447 . (Venäjän kieli)
- Gilbert, Seth ja Lynch, Nancy. Brewerin olettamus ja johdonmukaisten, saatavilla olevien ja osioita sietävien verkkopalvelujen toteutettavuus // ACM SIGACT News. - ACM , 2002. - Voi. 33 , iss. 2 . - s. 51-59 . — ISSN 0163-5700 . doi : 10.1145 / 564585.564601 . Arkistoitu alkuperäisestä 8. syyskuuta 2008.
- Grigorik , Ilja Heikko johdonmukaisuus ja YMP:n vaikutukset . Igvita (24. kesäkuuta 2010). Haettu 11. kesäkuuta 2011. Arkistoitu alkuperäisestä 14. toukokuuta 2012.
- Kuznetsov, Sergei. MapReduce: rinnakkaisen DBMS:n sisällä, ulkopuolella vai sivulla? // Venäjän tiedeakatemian järjestelmäohjelmointiinstituutin julkaisut. - M. : Venäjän tiedeakatemian järjestelmäohjelmoinnin instituutti , 2010 . - T. 19 . - S. 35-40 . — ISSN 2079-8156 . (Venäjän kieli)
- Kuznetsov, Sergei. Transaktioiden rinnakkainen DBMS: uusi aalto // Venäjän tiedeakatemian järjestelmäohjelmointiinstituutin julkaisut. - M . : Venäjän tiedeakatemian järjestelmäohjelmoinnin instituutti , 2011. - T. 20 . - S. 189-251 . — ISSN 2079-8156 . (Venäjän kieli)
- Pritchett, Dan. BASE: Acid Alternative // ACM-jono. - N.Y .: ACM, 2008. - Voi. 6 , ei. 3 . - s. 48-55 . — ISSN 1542-7730 . - doi : 10.1145/1394127.1394128 .
- Rys, Michael. Skaalautuva SQL. Miten suuret sivustot ja sovellukset pysyvät SQL-pohjaisina? (englanti) // ACM:n viestintä . - ACM , 2011. - Voi. 54 , nro. 6 . - s. 48-53 . — ISSN 0001-0782 . - doi : 10.1145/1953122.1953141 .
- Kivenmurtaja, Michael . Virheet tietokantajärjestelmissä, "lopulta" johdonmukaisuus ja CAP-lause . Citforum (19. toukokuuta 2010). Haettu: 4.6.2011. (Venäjän kieli)
- Stonebraker, Michael ja Cattel, Rick. Skaalautuva SQL. Miten suuret sivustot ja sovellukset pysyvät SQL-pohjaisina? (englanti) // ACM:n viestintä. - ACM, 2011. - Voi. 54 , nro. 6 . - s. 72-80 . — ISSN 0001-0782 . - doi : 10.1145/1953122.1953144 .
- Vogels, Werner. Lopulta johdonmukainen // Jono . - ACM, 2008. - Voi. 6 , ei. 6 . - s. 15-19 . — ISSN 1542-7730 . - doi : 10.1145/1466443.1466448 .