Sharding
Sharding este practica optimizării sistemelor de gestionare a bazelor de date prin separarea rândurilor sau coloanelor unui tabel de baze de date mai mare în mai multe tabele mai mici. Noile tabele se numesc ” cioburi „(sau partiții) și fiecare tabel nou are fie aceeași schemă, dar rânduri unice (cum este cazul” sharding orizontal”), fie are o schemă care este un subset adecvat al schemei tabelului original (cum este cazul”sharding vertical”).
De ce se folosește Shardingul?
Sharding este un concept comun în arhitecturi de baze de date scalabile. Tăind un tabel mai mare, puteți stoca noile bucăți de date, numite fragmente logice, pe mai multe noduri pentru a obține scalabilitate orizontală și performanță îmbunătățită. Odată ce fragmentul logic este stocat pe un alt nod, acesta este denumit un fragment fizic.
când rulați o bază de date pe o singură mașină, veți ajunge în cele din urmă la limita cantității de resurse de calcul pe care le puteți aplica oricărei interogări și, evident, veți ajunge la o cantitate maximă de date cu care puteți lucra eficient. Prin scalarea orizontală, puteți activa un design flexibil al bazei de date care crește performanța în două moduri cheie:
- cu procesare masivă paralelă, puteți profita de toate resursele de calcul din cluster pentru fiecare interogare.
- deoarece cioburile individuale sunt mai mici decât tabelul logic în ansamblu, fiecare mașină trebuie să scaneze mai puține rânduri atunci când răspunde la o interogare.shardingul orizontal este eficient atunci când interogările tind să returneze un subset de rânduri care sunt adesea grupate împreună. De exemplu, interogările care filtrează datele pe baza intervalelor scurte de date sunt ideale pentru sharding orizontal, deoarece intervalul de date va limita în mod necesar interogarea doar la un subset de servere.
shardingul Vertical este eficient atunci când interogările tind să returneze doar un subset de coloane ale datelor. De exemplu, dacă unele interogări solicită doar nume, iar altele solicită doar adrese, atunci numele și adresele pot fi împărțite pe servere separate.
de asemenea, bazele de date sharded pot oferi niveluri mai ridicate de disponibilitate. În cazul unei întreruperi a unei baze de date neclarizate, întreaga aplicație este inutilizabilă. Cu o bază de date sharded, numai porțiunile aplicației care s-au bazat pe bucățile lipsă de date sunt inutilizabile. În practică, bazele de date sharded adesea atenuează și mai mult impactul unor astfel de întreruperi prin replicarea fragmentelor de rezervă pe noduri suplimentare.
care este diferența dintre Sharding și partiționare?
Sharding și partiționarea sunt ambele despre ruperea unui set mare de date în subseturi mai mici. Diferența este că sharding implică datele sunt răspândite pe mai multe computere în timp ce partiționarea nu. Partiționarea se referă la gruparea subseturilor de date într-o singură instanță a bazei de date. În multe cazuri, termenii sharding și partiționare sunt chiar folosiți sinonim, mai ales atunci când sunt precedați de termenii „orizontal” și „vertical”.”Astfel, „împărțirea orizontală” și „partiționarea orizontală” pot însemna același lucru.
subiecte conexe
calcul în memorie
Edge Computing
Grid Computing
lecturi suplimentare
Hazelcast IMDG 3.12 introduce subsistemul CP