ce este persistența datelor și de ce contează?

pentru mai multe informații despre persistența în Cassandra și alte baze de date NoSQL, verificați ce este NoSQL?

înțelegerea semnificației persistenței este importantă pentru evaluarea diferitelor sisteme de stocare a datelor. Având în vedere importanța stocării datelor în majoritatea aplicațiilor moderne, a face o alegere prost informată ar putea însemna perioade de nefuncționare substanțiale sau pierderi de date. În această postare, vom discuta despre persistența și abordările de proiectare a magazinelor de date și vom oferi câteva informații despre acestea în contextul Cassandra.

persistența este „continuarea unui efect după ce cauza sa este îndepărtată”. În contextul stocării datelor într-un sistem informatic, aceasta înseamnă că datele supraviețuiesc după încheierea procesului cu care au fost create. Cu alte cuvinte, pentru ca un magazin de date să fie considerat persistent, acesta trebuie să scrie în stocarea nevolatilă.

dacă aveți nevoie de persistență în magazinul dvs. de date, atunci trebuie să înțelegeți și abordările de proiectare four man pe care le poate lua un magazin de date și cum (sau dacă) aceste modele oferă persistență:

  • pură în memorie, fără persistență, cum ar fi memcaches sau Scalaris

  • în memorie cu instantanee periodice, cum ar fi Oracle Coherence sau Redis

  • pe bază de disc cu update-in-loc scrie, cum ar fi MySQL ISAM sau MongoDB

  • Commitlog-based, cum ar fi toate bazele de date OLTP tradiționale (Oracle, SQL Server, etc.)

abordările în memorie pot atinge o viteză aprinsă, dar cu prețul de a fi limitate la un set de date relativ mic. Majoritatea sarcinilor de lucru au un subset relativ mic „fierbinte” (activ) din datele lor totale; sistemele care necesită întregul set de date să se potrivească în memorie, mai degrabă decât doar partea activă, sunt bune pentru cache-uri, dar se potrivesc prost pentru majoritatea celorlalte aplicații. Deoarece datele sunt doar în memorie, nu vor supraviețui încetării procesului. Prin urmare, aceste tipuri de magazine de date nu sunt considerate persistente.

cel mai simplu mod de a adăuga persistență la un sistem în memorie este cu instantanee periodice pe disc la un interval configurabil. Astfel, puteți pierde până la valoarea actualizărilor acelui interval.

Update-in-place și sisteme bazate pe commitlog Magazin de memorie non-volatile imediat, dar numai persistența pe bază de commitlog oferă durabilitate-D în ACID-cu fiecare scriere persistat înainte de succes este returnat clientului.

Cassandra implementează un design de persistență bazat pe jurnalul de comitere, dar în același timp prevede niveluri de durabilitate acordabile. Acest lucru vă permite să decideți ce este comerțul corect între siguranță și performanță. Puteți alege, pentru fiecare operație de scriere, să așteptați ca actualizarea să fie tamponată în memorie, scrisă pe disc pe o singură mașină, scrisă pe disc pe mai multe mașini sau chiar scrisă pe disc pe mai multe mașini din diferite centre de date. Sau, puteți alege să accepte scrie o mai repede posibil, recunoscând primirea lor imediat înainte ca acestea au fost chiar pe deplin deserializate din rețea.

la sfârșitul zilei, ești singurul care știe care este compromisul corect de performanță/durabilitate pentru datele tale. Luarea unei decizii informate cu privire la tehnologiile de stocare a datelor este esențială pentru abordarea acestui compromis în condițiile dvs. Deoarece Cassandra oferă o astfel de tuneabilitate, este o alegere logică pentru sistemele care au nevoie de un magazin de date durabil și performant.

Lasă un răspuns

Adresa ta de email nu va fi publicată.