- 22.03.2021
- 12 minute de citit
In acest articol
APLICA LA: SQL API Cassandra API Gremlin API API API Azure Cosmos DB API pentru MongoDB
Bazele de date distribuite care se bazeaza pe replicare pentru disponibilitate ridicata, latenta scazuta sau ambele, trebuie sa faca un compromis fundamental intre consistenta citirii, disponibilitatea, latenta si randamentul, asa cum este definit de teorema PACLC. Liniarizabilitatea modelului de consistenta puternica este standardul de aur al programabilitatii datelor. Dar adauga un pret abrupt de la latente de scriere mai mari, datorita faptului ca datele trebuie sa se reproduca si sa se angajeze pe distante mari. Consistenta puternica poate suferi, de asemenea, de disponibilitate redusa (in timpul esecurilor), deoarece datele nu pot fi reproduse si angajate in fiecare regiune. Coerenta eventuala ofera o disponibilitate mai mare si o performanta mai buna, dar este mai dificil de programat aplicatiile, deoarece datele pot sa nu fie complet consecvente in toate regiunile.
Cele mai multe baze de date distribuite NoSQL disponibile in comert disponibile astazi pe piata ofera doar consistenta puternica si eventuala. Azure Cosmos DB ofera cinci niveluri bine definite. De la cel mai puternic la cel mai slab, nivelurile sunt:
- Puternic
- Varsta marginita
- Sesiune
- Prefix consecvent
- Eventual
Fiecare nivel ofera compromisuri de disponibilitate si performanta. Urmatoarea imagine arata diferitele niveluri de consistenta ca spectru.
Nivelurile de consistenta sunt agnostice in regiune si sunt garantate pentru toate operatiunile, indiferent de regiunea din care sunt deservite citirile si scrierile, numarul de regiuni asociate contului dvs. Azure Cosmos sau daca contul dvs. este configurat cu o singura sau mai multe regiuni de scriere. .
Niveluri de coerenta si API-uri Azure Cosmos DB
Azure Cosmos DB ofera suport nativ pentru API-urile compatibile cu protocolul firelor pentru bazele de date populare. Acestea includ stocarea MongoDB, Apache Cassandra, Gremlin si Azure Table. Cand se utilizeaza API-ul Gremlin si API-ul Table, se utilizeaza nivelul implicit de consistenta configurat in contul Azure Cosmos. Pentru detalii despre maparea nivelului de consistenta intre Cassandra API sau API pentru MongoDB si nivelurile de consistenta ale Azure Cosmos DB, consultati, maparea consistentei API Cassandra si API pentru maparea consistentei MongoDB.
Domeniul de aplicare al consistentei citite
Consistenta de citire se aplica unei singure operatii de citire cuprinse intr-o partitie logica. Operatia de citire poate fi emisa de un client la distanta sau de o procedura stocata.
Configurati nivelul implicit de consistenta
Puteti configura nivelul implicit de coerenta in contul dvs. Azure Cosmos in orice moment. Nivelul implicit de consistenta configurat in contul dvs. se aplica tuturor bazelor de date si containerelor Azure Cosmos din acel cont. Toate citirile si interogarile emise impotriva unui container sau a unei baze de date utilizeaza in mod implicit nivelul de consistenta specificat. Pentru a afla mai multe, vedeti cum sa configurati nivelul implicit de consistenta. De asemenea, puteti suprascrie nivelul implicit de consistenta pentru o cerere specifica, pentru a afla mai multe, a se vedea cum sa suprascrieti articolul implicit al nivelului de consistenta
Important
Este necesar sa recreati orice instanta SDK dupa schimbarea nivelului implicit de consistenta. Acest lucru se poate face prin repornirea aplicatiei. Acest lucru asigura ca SDK utilizeaza noul nivel implicit de consistenta.
Garantii asociate nivelurilor de consistenta
Azure Cosmos DB garanteaza ca 100% din cererile de citire indeplinesc garantia de consistenta pentru nivelul de consistenta ales. Definitiile precise ale celor cinci niveluri de consistenta din Azure Cosmos DB utilizand limbajul de specificatie TLA + sunt furnizate in repo-ul GitHub azure-cosmos-tla.
Semantica celor cinci niveluri de consistenta este descrisa in sectiunile urmatoare.
Consistenta puternica
Consistenta puternica ofera o garantie de liniarizare. Linearizabilitatea se refera la servirea simultana a cererilor. Citirile sunt garantate pentru a returna cea mai recenta versiune angajata a unui articol. Un client nu vede niciodata o scriere necomitata sau partiala. Utilizatorilor li se garanteaza intotdeauna ca vor citi ultima scriere angajata.
Urmatorul grafic ilustreaza consistenta puternica cu notele muzicale. Dupa ce datele sunt scrise in regiunea „West US 2”, cand cititi datele din alte regiuni, veti obtine cea mai recenta valoare:
Consistenta limitata a stalitatii
Intr-o consistenta limitata a stalitatii, citirile sunt garantate pentru a onora garantia de prefix consistent. Citirile ar putea ramane in urma cu scrierile dupa cel mult versiunile „K” (adica „actualizari”) ale unui articol sau dupa intervalul de timp „T” , oricare dintre acestea este atins primul. Cu alte cuvinte, atunci cand alegeti staleness marginit, „staleness” poate fi configurat in doua moduri:
- Numarul de versiuni ( K ) ale articolului
- Citirea intervalului de timp ( T ) ar putea ramane in urma scrierilor
Pentru un cont cu o singura regiune, valoarea minima a lui K si T este de 10 operatii de scriere sau 5 secunde. Pentru conturile cu mai multe regiuni, valoarea minima a K si T este de 100.000 operatii de scriere sau 300 de secunde.
Staleness delimitat ofera o ordine globala totala in afara „ferestrei staleness”. Atunci cand un client efectueaza operatiuni de citire intr-o regiune care accepta scrieri, garantiile oferite de consistenta limitata a stalitatii sunt identice cu acele garantii prin consistenta puternica. Pe masura ce fereastra de staleness se apropie fie pentru timp, fie pentru actualizari, oricare dintre acestea este mai aproape, serviciul va restrange noile scrieri pentru a permite replicarii sa recupereze si sa onoreze garantia de consistenta.
In interiorul ferestrei de staleness, Bounded Staleness ofera urmatoarele garantii de consistenta:
-
Coerenta pentru clientii din aceeasi regiune pentru un cont cu o singura regiune de scriere = puternic
-
Coerenta pentru clientii din diferite regiuni pentru un cont cu o singura regiune de scriere = Prefix consecvent
-
Coerenta pentru clientii care scriu intr-o singura regiune pentru un cont cu mai multe regiuni de scriere = Prefix consecvent
-
Coerenta pentru clientii care scriu in diferite regiuni pentru un cont cu mai multe regiuni de scriere = Eventual
Stalenitatea delimitata este frecvent aleasa de aplicatiile distribuite la nivel global, care se asteapta cu latente reduse de scriere, dar necesita o garantie totala a comenzii globale. Stalinitatea delimitata este excelenta pentru aplicatiile cu colaborare si partajare de grup, bifare stoc, publicare-abonare / coada etc. Urmatoarea grafica ilustreaza consistenta limitarii limitarii cu notele muzicale. Dupa ce datele sunt scrise in regiunea „Vestul SUA 2”, regiunile „Estul SUA 2” si „Australia Est” citesc valoarea scrisa pe baza timpului maxim de intarziere configurat sau a operatiunilor maxime:
Coerenta sesiunii
In ceea ce priveste consistenta sesiunii, intr-o singura sesiune de client, citirile sunt garantate pentru a onora garantiile de prefix consistent, citiri monotonice, scrieri monotonice, citire-scriere si scriere-urmare-citire. Aceasta presupune o singura sesiune de „scriitor” sau partajarea simbolului de sesiune pentru mai multi scriitori.
Clientii din afara sesiunii care efectueaza scrieri vor vedea urmatoarele garantii:
-
Coerenta pentru clientii din aceeasi regiune pentru un cont cu o singura regiune de scriere = Prefix consecvent
-
Coerenta pentru clientii din diferite regiuni pentru un cont cu o singura regiune de scriere = Prefix consecvent
-
Coerenta pentru clientii care scriu intr-o singura regiune pentru un cont cu mai multe regiuni de scriere = Prefix consecvent
-
Coerenta pentru clientii care scriu in mai multe regiuni pentru un cont cu mai multe regiuni de scriere = Eventual
Coerenta sesiunii este cel mai utilizat nivel de consistenta atat pentru aplicatiile cu o singura regiune, cat si pentru cele distribuite la nivel global. Ofera latente de scriere, disponibilitate si viteza de citire comparabila cu cea a unei eventuale consecvente, dar ofera si garantii de consistenta care se potrivesc nevoilor aplicatiilor scrise pentru a functiona in contextul unui utilizator. Urmatorul grafic ilustreaza consistenta sesiunii cu notele muzicale. „West US 2 writer” si „West US 2 reader” utilizeaza aceeasi sesiune (sesiunea A), astfel incat ambii citesc aceleasi date in acelasi timp. In timp ce regiunea „Australia de Est” foloseste „Sesiunea B”, asadar, primeste date mai tarziu, dar in aceeasi ordine in care scrie.
Coerenta coerenta a prefixului
In optiunea de prefix consecvent, actualizarile returnate contin un prefix al tuturor actualizarilor, fara goluri. Nivelul de consistenta al prefixului consecvent garanteaza ca citirile nu se vad niciodata in scrieri in afara ordinii.
Daca scrierile au fost efectuate in ordinea A, B, C, atunci un client vede fie A, A, B sau A, B, C, dar niciodata permutari in afara ordinii, cum ar fi A, C sau B, A, C. Prefixul consecvent ofera latente de scriere, disponibilitate si randament de citire comparabil cu cel al unei eventuale consistente, dar ofera si garantii de comanda care se potrivesc nevoilor scenariilor in care ordinea este importanta.
Mai jos sunt garantiile de consistenta pentru un prefix consecvent:
- Coerenta pentru clientii din aceeasi regiune pentru un cont cu o singura regiune de scriere = Prefix consecvent
- Coerenta pentru clientii din diferite regiuni pentru un cont cu o singura regiune de scriere = Prefix consecvent
- Coerenta pentru clientii care scriu intr-o singura regiune pentru un cont cu mai multe regiuni de scriere = Prefix consecvent
- Coerenta pentru clientii care scriu in mai multe regiuni pentru un cont cu mai multe regiuni de scriere = Eventual
Urmatorul grafic ilustreaza consistenta consistentei prefixului cu notele muzicale. In toate regiunile, citirile nu se vad niciodata scos din ordine:
Coerenta eventuala
In eventualitatea consecventei, nu exista nicio garantie de comanda pentru citiri. In absenta altor scrieri, replicile converg in cele din urma.
Coerenta eventuala este cea mai slaba forma de consistenta, deoarece un client poate citi valorile mai vechi decat cele pe care le citise inainte. Coerenta eventuala este ideala atunci cand aplicatia nu necesita garantii de comanda. Exemplele includ numarul de retweets, aprecieri sau comentarii fara fir. Urmatorul grafic ilustreaza eventuala consistenta cu notele muzicale.
Garantii de coerenta in practica
In practica, este posibil sa obtineti adesea garantii de consistenta mai puternice. Garantiile de coerenta pentru o operatie de citire corespund cu prospetimea si ordonarea starii bazei de date pe care o solicitati. Consistenta de citire este legata de ordonarea si propagarea operatiunilor de scriere / actualizare.
Daca nu exista operatiuni de scriere in baza de date, o operatie de citire cu eventuale , sesiuni sau niveluri consistente de consistenta a prefixului va produce probabil aceleasi rezultate ca o operatie de citire cu nivel de consistenta puternic.
Daca contul dvs. Azure Cosmos este configurat cu un nivel de consistenta diferit de consistenta puternica, puteti afla probabilitatea ca clientii dvs. sa obtina citiri puternice si consistente pentru incarcarile dvs. de lucru, analizand metrica Probabilitate Bounded Staleness (PBS). Aceasta valoare este expusa in portalul Azure, pentru a afla mai multe, consultati valoarea Monitorizare a probabilitatii limitate (PBS).
Punctualitatea limitata probabilistica arata cat de eventuala este eventuala dvs. consecventa. Aceasta valoare ofera o perspectiva asupra frecventei cu care puteti obtine o consistenta mai puternica decat nivelul de consistenta pe care l-ati configurat in prezent in contul dvs. Azure Cosmos. Cu alte cuvinte, puteti vedea probabilitatea (masurata in milisecunde) de a obtine citiri puternic consistente pentru o combinatie de regiuni de scriere si citire.
Nivele de consistenta si latenta
Latenta de citire pentru toate nivelurile de consistenta este garantata intotdeauna sa fie mai mica de 10 milisecunde la percentila 99. Latenta medie de citire, la percentila 50, este de obicei de 4 milisecunde sau mai putin.
Latenta de scriere pentru toate nivelurile de consistenta este garantata intotdeauna sa fie mai mica de 10 milisecunde la percentila 99. Latenta medie de scriere, la percentila 50, este de obicei de 5 milisecunde sau mai putin. Conturile Azure Cosmos care acopera mai multe regiuni si sunt configurate cu o consistenta puternica sunt o exceptie de la aceasta garantie.
Scrieti latenta si consistenta puternica
Pentru conturile Azure Cosmos configurate cu o consistenta puternica cu mai multe regiuni, latenta de scriere este egala cu de doua ori timpul dus-intors (RTT) intre oricare dintre cele doua regiuni indepartate, plus 10 milisecunde la percentila 99. RTT de retea inalta intre regiuni se va traduce intr-o latenta mai mare pentru solicitarile Cosmos DB, deoarece o consistenta puternica finalizeaza o operatiune numai dupa asigurarea faptului ca a fost angajata tuturor regiunilor din cadrul unui cont.
Latenta RTT exacta este o functie a distantei vitezei de lumina si a topologiei de retea Azure. Reteaua Azure nu ofera SLA-uri de latenta pentru RTT intre oricare doua regiuni Azure, insa publica statistici de latenta dus-intors ale retelei Azure. Pentru contul dvs. Azure Cosmos, latentele de replicare sunt afisate in portalul Azure. Puteti utiliza portalul Azure (accesati lama Metrici, selectati fila Coerenta) pentru a monitoriza latentele de replicare intre diferite regiuni asociate contului dvs. Azure Cosmos.
Important
Consistenta puternica pentru conturile cu regiuni care se intind pe mai mult de 8000 de kilometri este blocata in mod implicit din cauza latentei ridicate de scriere. Pentru a activa aceasta functie, va rugam sa contactati asistenta.
Nivele de consistenta si debit
-
Pentru stalenta puternica si delimitata, citirile se fac impotriva a doua replici intr-un set de patru replici (cvorum minoritar) pentru a oferi garantii de coerenta. Sesiunea, prefixul consecvent si eventualele citiri de replici unice. Rezultatul este ca, pentru acelasi numar de unitati de solicitare, fluxul de citire pentru stalitatea puternica si marginita este jumatate din celelalte niveluri de consistenta.
-
Pentru un anumit tip de operatie de scriere, cum ar fi inserarea, inlocuirea, ascensiunea si stergerea, fluxul de scriere pentru unitatile de solicitare este identic pentru toate nivelurile de consistenta.
Coerenta la nivel Cvorumul Citeste Cvorumul scrie Strong minoritatii Global Majoritate marginite invechire locala minoritatii Majoritate Sesiunea unica Replica (folosind sesiune jeton) Majoritate Local Consecvent Prefixul unica Majoritate Replica locala Eventuala unica Replica Local Majoritate
Nota
Costul RU / s al citirilor pentru citirile din minoritatea locala este de doua ori mai mare decat cel al nivelurilor de consistenta mai slabe, deoarece citirile sunt realizate din doua replici pentru a oferi garantii de coerenta pentru stalitatea puternica si limitata.
Nivele de consistenta si durabilitatea datelor
In cadrul unei baze de date distribuite la nivel global, exista o relatie directa intre nivelul de consistenta si durabilitatea datelor in prezenta unei intreruperi la nivelul intregii regiuni. Pe masura ce va dezvoltati planul de continuitate a activitatii, trebuie sa intelegeti timpul maxim acceptabil inainte ca aplicatia sa se refaca complet dupa un eveniment perturbator. Timpul necesar pentru recuperarea completa a unei aplicatii este cunoscut sub numele de obiectiv de recuperare ( RTO ). De asemenea, trebuie sa intelegeti perioada maxima a actualizarilor recente de date pe care aplicatia le poate tolera pierderea atunci cand se recupereaza dupa un eveniment perturbator. Perioada de timp a actualizarilor pe care ti-ai putea permite sa o pierzi este cunoscuta sub numele de obiectiv de recuperare ( RPO ).
Tabelul de mai jos defineste relatia dintre modelul de consistenta si durabilitatea datelor in prezenta unei intreruperi la nivelul intregii regiuni. Este important sa retineti ca intr-un sistem distribuit, chiar si cu o consistenta puternica, este imposibil sa aveti o baza de date distribuita cu RPO si RTO zero, datorita teoremei CAP.
Regiune (regiuni) Mod de replicare Nivel de consistenta RPO RTO 1 Regiuni de scriere unice sau multiple Orice nivel de consistenta <240 minute <1 saptamana> 1 regiune de scriere simpla Sesiune, Prefix consecvent, Eventual <15 minute <15 minute> 1 Regiune de scriere unica Limitat Stalitatea K & T <15 minute> 1 Regiune de scriere simpla puternica 0 <15 minute> 1 Regiuni de scriere multiple Sesiune, Prefix consecvent, Eventual <15 minute 0> 1 Regiuni de scriere multiple Bounded Staleness K & T 0
K = Numarul de versiuni „K” (adica, actualizari) ale unui articol.
T = Intervalul de timp „T” de la ultima actualizare.
Pentru un cont cu o singura regiune, valoarea minima a lui K si T este de 10 operatii de scriere sau 5 secunde. Pentru conturile cu mai multe regiuni, valoarea minima a K si T este de 100.000 operatii de scriere sau 300 de secunde. Aceasta defineste RPO minim pentru date atunci cand se utilizeaza Bounded Staleness.
Consistenta puternica si mai multe regiuni de scriere
Conturile Cosmos configurate cu mai multe regiuni de scriere nu pot fi configurate pentru o consistenta puternica, deoarece nu este posibil ca un sistem distribuit sa furnizeze un RPO de zero si un RTO de zero. In plus, nu exista avantaje de latenta la scriere daca se utilizeaza o consistenta puternica cu mai multe regiuni de scriere, deoarece o scriere in orice regiune trebuie sa fie reprodusa si angajata in toate regiunile configurate din cont. Acest lucru are ca rezultat aceeasi latenta de scriere ca un singur cont de regiune de scriere.
Lectura suplimentara
Pentru a afla mai multe despre conceptele de consistenta, cititi urmatoarele articole:
- Specificatii TLA + la nivel inalt pentru cele cinci niveluri de consistenta oferite de Azure Cosmos DB
- Coerenta datelor replicate explicata prin baseball (video) de Doug Terry
- Coerenta datelor replicate explicata prin baseball (carte alba) de Doug Terry
- Garantii de sesiune pentru date replicate slab consistente
- Compensarea consecventei in proiectarea moderna a sistemelor de baze de date distribuite: CAP este doar o parte a povestii
- Probabilitate Bounded Staleness (PBS) pentru cvorumurile partiale practice
- In cele din urma consecvent – revizuit
Pasii urmatori
Pentru a afla mai multe despre nivelurile de consistenta din Azure Cosmos DB, cititi urmatoarele articole:
- Configurati nivelul implicit de consistenta
- Inlocuiti nivelul implicit de consistenta
- SLA Azure Cosmos DB
alexmagni liz heaven
cento x cento film streaming lo porn
18 troie lo spaventapassere streaming
malena pugliese rocco lo spaventapassere streaming ita
sexe rocco siffredi loly porn
malena la pugliese video hard luana oara
video gratis mogli luana xxx
casting italia porn luca ferrero xxx
xxx puttane luna corazon porn
le mani dentro spoleto luna corazon xxx
patrizia cavalli xxx luna dark xxx
cento x cento movies luna e rebecca
malena porno film luna oara anal
dellai lesbo luna oara xxx
solo figa italiana luna raimondini
www xxx italy luna ramondini
salierimario luna ramondini dipre
centox cento video luna ramondini e rebecca volpetti
max felicitas cagne luna ramondini film
xxx mogli infedeli luna ramondini hard








