MongoDB grozdi, ki jih porušijo, zagotavljajo zmogljivo metodo za horizontalno skaliranje velikih naborov z distribucijo podatkov na več strežnikov ali drobcev, kar omogoča učinkovito pretok baze podatkov in velike količine podatkov.
Grozd MongoDB je sestavljen predvsem iz treh glavnih komponent: drobcev, konfiguracijskih strežnikov in usmerjevalnikov Mongos. Vsak šard je replika, ki vsebuje podskupino podatkov grozda. Replike nabori zagotavljajo odpuščanje podatkov in visoko razpoložljivost podatkov na vsakem škoru. Konfiguracijski strežniki shranijo metapodatke in konfiguracijske podrobnosti o grozdu, vključno s preslikavo koščkov podatkov na drobce. Mongos deluje kot usmerjevalna storitev, ki se povezuje z aplikacijami za stranke in usmerja poizvedbe na ustrezne drobce, ki temeljijo na ključu Shard.
Sharding v MongoDB je zasnovan tako, da omogoča vodoravno skaliranje z razdelitvijo podatkov po drobcih prek izbranega ključa Shard. To particijo ustvarja koščke podatkov, ki so enakomerno razporejeni med drobci, kar omogoča MongoDB, da širi obremenitev branja in zapisov. Poizvedbe, ki vključujejo ključ Shard ali predpone sestavljenega ključa Shard, lahko Mongos učinkovito preusmerijo na posebne drobce, kar zmanjšuje poizvedbe in izboljšuje uspešnost. Če poizvedba ne vključuje ključa Shard, lahko Mongos poizvedbo predvaja vsem drobci, kar je manj učinkovito.
Drobci v grozdu so razširljivi; Dodatne drobce lahko dinamično dodate, da se prilagodi rasti v količini podatkov ali obremenitve poizvedb brez izpadov. Vsaka škrlata je replika, ki je zagotovljena toleranca na napake, celotna zasnova grozda pa podpira visoko razpoložljivost. MongoDB samodejno uravnoteži podatke po drobcih in prerazporedi koščke podatkov, če je potrebno za vzdrževanje enakomerne obremenitve med Shards.
Config servers play a critical role in managing the cluster's metadata, storing information about the cluster's structure and data distribution. Konfiguracijski strežniki morajo biti nameščeni kot replika, ki je nastavljena za visoko razpoložljivost. Sinhronizirajo z usmerjevalniki Mongos, ki metapodatke predpomnijo lokalno, da učinkovito usmerijo poizvedbe. Dosledno stanje metapodatkov v konfiguracijskih strežnikih je bistvenega pomena za pravilno delovanje grozda.
Mongos primerki delujejo kot usmerjevalniki poizvedb, ki zagotavljajo vmesniški sloj med aplikacijami odjemalcev in grozdom. Kompleksnost okolja izvlečejo z usmerjanjem operacij na pravilne drobce, ki temeljijo na metapodatkih iz konfiguracijskih strežnikov. Za uravnoteženje obremenitve in visoko razpoložljivost je mogoče namestiti več primerkov Mongos, zato jih je treba namestiti v bližino aplikacijskih strežnikov, da se zmanjša zakasnitev omrežja.
Ključni vidik grozdnih grozdov je izbira Key Shard. Ključ SHARD ureja, kako se podatki razdelijo, in neposredno vplivajo na uspešnost grozda in porazdelitev podatkov. Za izbiro ustreznega ključa SHARD je potrebna analiza delovne obremenitve, da se zagotovi enakomerna porazdelitev operacij branja in pisanja po Shards. Ko je zbrana zbirka ustvarjena z določenim ključem Shard, je sprememba ključa Shard zapletena in običajno vključuje zamuden postopek migracije podatkov. Zato je pomembna skrbna izbira ključa Shard.
V proizvodnih okoljih dobre prakse za grozdene grozde vključujejo uvajanje konfiguracijskih strežnikov in drobcev kot replike v več podatkovnih centrih, da se zagotovi toleranca na napake in visoka razpoložljivost. Vsako drobtino priporočamo, da postanete replika tri vozlišča. Grozdi zahtevajo vsaj dva drobca, čeprav se lahko uporabijo grozdi z enim drobcem, če bo v prihodnosti načrtovano.
Sharding izboljšuje zmogljivost baze podatkov s povečanjem omejitev shranjevanja s pomočjo porazdeljenega shranjevanja podatkov po drobcih. Prav tako izboljša delovanje z distribucijo branja in zapisov, kar omogoča ravnanje z večjo obremenitvijo pretoka. Poleg tega lahko grozd z otrdjo ohrani delno razpoložljivost med izpadi grozd; Medtem ko so podatki o prizadetih drobcih morda nedostopni, grozd nadaljuje s servisiranjem zahtevkov na razpoložljivih drobcih.
V grozdnem grozdu so podatki razdeljeni na koščke znotraj območja, ki ga določa ključ Shard. MongoDB konfigurira velikosti kos, ki vplivajo na to, kako se podatki razdelijo in uravnotežijo po drobcih. Skupine samodejno obravnava migracije in postopke ponovnega uravnoteženja, da ohrani enakomerno porazdelitev podatkov in optimalne zmogljivosti. To samodejno uravnoteženje zagotavlja, da noben samski ne postane uspešnost ozkega grla ali vroče točke za shranjevanje.
Strojevi grozdi podpirajo tudi cone (zavedanje tag), kar omogoča, da se podatki razvrstijo in omejijo na posebne drobce na podlagi conskih združenj. Ta funkcija omogoča bolj nadzorovani kraj podatkov in je uporabna za skladnost ali zahteve po geografski distribuciji. Območja so dodeljena razponi ključnih vrednosti Shard in povezana s Shards, da bi bolj natančno nadzirali namestitev podatkov.
Omejitve in operativni vidiki vključujejo zapletenost upravljanja več drobcev in povečanega operativnega režijskega stroškov. Zakasnitev omrežja med komponentami in režijskim stroškom ohranjanja metapodatkov in usmerjanja konfiguracijskega strežnika lahko vpliva na uspešnost, če se ne upravlja pravilno. Umestitev več usmerjevalnikov Mongos in konfiguracije strežnikov ter spremljanje njihovega zdravja je bistvenega pomena, da se prepreči poslabšanje uspešnosti. Število primerov Mongos je treba uravnotežiti, saj lahko prekomerni primeri Mongos privedejo do pogoste komunikacije s konfiguracijskimi strežniki in morebitni vpliv na zmogljivost grozda.
Nekatere omejitve veljajo v gostovanih ali upravljanih različicah grozdov MongoDB, kot je Azure Cosmos DB za MongoDB API, vključno s številom školjk, shranjevanjem in omejitvami virov na šard ali grozd. Te meje, specifične za platformo, se razlikujejo in so lahko višje pri premijskih stopnjah.
Na splošno MongoDB grozdi grozdi zagotavljajo robustno podlago za skaliranje sodobnih aplikacij z velikimi rastočimi nabori podatkov z distribucijo podatkov in operacij, ki pregledno porazdelijo na več vozlišč, s čimer zagotavljajo delovanje, toleranco na napake in razširljivost z inteligentno razdelitvijo podatkov in replike.