MongoDB: n varustetut klusterit tarjoavat tehokkaan menetelmän suurten tietojoukkojen vaakasuoraan skaalaamiseen jakamalla tietoja useiden palvelimien tai sirujen välillä, jolloin tietokanta voi käsitellä tehokkaasti suuria läpimenoja ja suuria määriä tietoa.
MongoDB: n vaarannut klusteri koostuu pääasiassa kolmesta pääkomponentista: sirpaleista, config -palvelimista ja Mongos -reitittimistä. Jokainen shard on replikajoukko, joka sisältää osajoukon klusterin tiedoista. Replica -asetukset varmistavat, että datan redundanssi ja korkea käytettävyys jokaisen Shardin tietojen suhteen. Config -palvelimet tallentavat metatiedot ja konfiguraatiotiedot klusterista, mukaan lukien datapalojen kartoitus sirpaleiksi. Mongos toimii reitityspalveluna, joka liittyy asiakassovelluksiin ja ohjaa kyselyjä asianmukaisiin sirpaleihin Shard -avaimen perusteella.
MongoDB: n varjostus on suunniteltu sallimaan vaakasuuntainen skaalaus jakamalla tiedot Shardsin yli valitun Shard -avaimen kautta. Tämä osiointi luo datapaloja, jotka jakautuvat tasaisesti sirpaleiden kesken, jolloin MongoDB voi levittää lukemien ja kirjoittaa. Kyselyt, jotka sisältävät SHARD -avaimen tai yhdistelmäavaimen etuliitteet tai etuliitteet, voidaan ohjata tehokkaasti tietyille sirpaleille, vähentämällä kyselyn yläpuolella ja parantamalla suorituskykyä. Jos kysely ei sisällä Shard -avainta, Mongos voi lähettää kyselyn kaikille sirpaleille, mikä on vähemmän tehokasta.
Klusterin sirut ovat skaalautuvia; Lisävääreitä voidaan lisätä dynaamisesti tietomäärän tai kyselykuorman kasvun saavuttamiseksi ilman seisokkeja. Jokainen shard on kopio, joka on asetettu vikasietoisuuden varmistamiseksi, ja klusterin kokonaismalli tukee korkeaa saatavuutta. MongoDB tasapainottaa tietoja automaattisesti Shards -tietojen välillä, jakamalla tietopaloja tarvittaessa tasaisen työmäärän ylläpitämiseksi sirujen keskuudessa.
Config -palvelimilla on kriittinen rooli klusterin metatietojen hallinnassa, tallentamalla tietoja klusterin rakenteesta ja tiedon jakautumisesta. Config -palvelimet on otettava käyttöön kopiona, joka on asetettu korkealle saatavuudelle. Ne synkronoivat Mongos -reitittimien kanssa, jotka välimuistiin metatiedot paikallisesti reitittävät kyselyjä tehokkaasti. Konfigurointipalvelimien metatietojen johdonmukainen tila on välttämätön varjostetun klusterin oikealle toiminnalle.
Mongos -tapaukset toimivat kysely reitittiminä, jotka tarjoavat käyttöliittymän asiakassovellusten ja varjostetun klusterin välillä. He abstraktivat varustetun ympäristön monimutkaisuuden reitittämällä toiminnot oikeat sirpaleihin konfigurointipalvelimien metatietojen perusteella. Useita Mongos -esiintymiä voidaan ottaa käyttöön kuorman tasapainottamiseksi ja korkealle saatavuudelle, ja ne tulisi sijoittaa lähelle sovelluspalvelimia verkon viiveen vähentämiseksi.
Suhdettujen klusterien ratkaiseva osa on Shard -avaimen valinta. Shard -avain säätelee, miten tiedot jaetaan, mikä vaikuttaa suoraan klusterin suorituskykyyn ja tiedon jakautumiseen. Sopivan shard -avaimen valitseminen vaatii työmäärän analysoinnin luku- ja kirjoitustoimintojen tasaisen jakauman varmistamiseksi Shardsin välillä. Kun varustettu kokoelma on luotu tietyllä Shard-avaimella, Shard-avaimen muuttaminen on monimutkaista ja sisältää tyypillisesti aikaa vievää tiedonsiirtoprosessia. Siksi varovainen Shard -avainvalinta etukäteen on tärkeää.
Tuotantoympäristöissä varustettujen klusterien hyvät käytännöt sisältävät konfigurointipalvelimien ja sirpaleiden käyttöönottoa replika -asettajana useiden tietokeskuksien välillä viantoleranssin ja korkean saatavuuden varmistamiseksi. Jokaista shardia suositellaan olevan kolmen solmun kopio. Klusterit vaativat vähintään kaksi sirpaleita, vaikka yksi shardeja katkaistuja klustereita voidaan käyttää, jos tulevaisuudessa suunnitellaan.
Sharding parantaa tietokannan kapasiteettia lisäämällä tallennusrajoja hajautetun tiedon tallennusrajojen avulla. Se parantaa myös suorituskykyä jakamalla lukemia ja kirjoittamista, mikä mahdollistaa korkeamman läpimenon työmäärän käsittelyn. Lisäksi varjostettu klusteri voi ylläpitää osittaista saatavuutta Shard -katkoksien aikana; Vaikka tiedot kohdistuvista siruista saattavat olla saavuttamattomia, klusteri jatkaa huoltopyyntöjä käytettävissä olevilla siruilla.
Selvitetyssä klusterissa tiedot jaetaan paloiksi Shard -avaimen määrittelemällä alueella. MongoDB määrittää chunk -koot, jotka vaikuttavat siihen, miten data jaetaan ja tasapainotetaan sirpaleiden välillä. Klusteri käsittelee palan siirtymiä ja tasapainotusprosesseja automaattisesti tasaisen tiedon jakelun ja optimaalisen suorituskyvyn ylläpitämiseksi. Tämä automaattinen tasapainotus varmistaa, että yhdestä shardista ei tule suorituskykyä pullonkaula tai säilytyspiste.
Välitetyt klusterit tukevat myös vyöhykkeitä (tag-tietoista varjostamista), mikä mahdollistaa tietojen ryhmittelyn ja rajoittaa tiettyihin vyöhykeyhdistysten perusteella. Tämä ominaisuus mahdollistaa hallitumman data -alueen ja on hyödyllinen vaatimustenmukaisuuden tai maantieteellisten jakeluvaatimusten kannalta. Vyöhykkeet on määritetty Shard -avainarvojen alueille, ja niihin liittyvät sirpaleihin tietojen sijoittamisen hallitsemiseksi rakeisemmin.
Rajoituksiin ja operatiivisiin näkökohtiin sisältyy useiden sirpaleiden hallinnan monimutkaisuus ja lisääntynyt operatiiviset yleiskustannukset. Komponenttien välinen verkon viive ja konfigurointipalvelimen metatietojen ylläpitämisen ja reitityksen ylläpitäminen voivat vaikuttaa suorituskykyyn, jos niitä ei hallita oikein. Useiden Mongos -reitittimien ja konfigurointipalvelimien käyttöönotto ja terveyden seuranta on välttämätöntä suorituskyvyn heikkenemisen välttämiseksi. Mongos -tapausten lukumäärän tulisi olla tasapainossa, koska liialliset Mongos -tapaukset voivat johtaa usein kommunikointiin konfigurointipalvelimien kanssa ja mahdollinen vaikutus klusterin suorituskykyyn.
Joitakin rajoja sovelletaan MongoDB: n varustettujen klustereiden isännöityihin tai hallittuihin versioihin, kuten Azure Cosmos DB MongoDB -sovellusliittymään, mukaan lukien Shard -määrät, varastointi ja resurssien rajat shardia tai klusteria kohti. Nämä alustakohtaiset rajat vaihtelevat ja voivat olla korkeammat premium-tasoilla.
Kaiken kaikkiaan MongoDB: n varustetut klusterit tarjoavat vankan perustan nykyaikaisten sovellusten skaalaamiselle suurilla, kasvavilla tietoaineistoilla jakamalla tietoja ja operaatioita avoimesti useiden solmujen välillä, varmistaen suorituskyvyn, vikasietoisuuden ja skaalautuvuuden älykkään tiedon jaosto- ja replika -asetettujen käyttöönoton avulla.