Ymmärtäminen Journaling MongoDB: ssä



Blogi antaa lyhyen tiedon MongoDB: n päiväkirjasta

Työskentely Mongod Write -operaation kanssa

Mongod isännöi ensisijaisesti muistin kirjoitusoperaatioita jaetussa näkymässä. Sitä kutsutaan jaetuksi, koska sillä on muistikartoitus todellisella levyllä.





Esimerkiksi käyttäjän datatiedosto pidetään datalla dd, ja siinä on muistikartoitus. Tässä se työntää ensin kaikki tiedot muistiin ja tietyn ajan kuluttua vilkuttaa tiedot muistiin, mikä tapahtuu 60 sekunnin välein eikä tämä prosessi vaikuta käyttäjään.

Tällöin tätä prosessia kutsutaan Ei päiväkirja -vaihtoehdoksi, mikä tarkoittaa, että jos tietojen tallentaminen muistista levylle tai äkillinen sammutus tapahtuu 60 sekunnin viiveellä, se tarkoittaa, että mitä tahansa muistissa olevaa tietoa ei välttämättä noudeta. Siksi Journalingista tulee merkitystä tässä.



mikä on ero hashtabelin ja hashmapin välillä

On tärkeää tietää, että kirjaaminen on oletusarvoisesti poistettu käytöstä ennen versiota 2.4.10, mutta sen jälkeen se on otettu käyttöön.

Heti kun mongodiprosessi alkaa, voidaan havaita seuraava väite:

Päiväkirja dir = D: Rana2custom datajournal



Täällä Journal Directory on alihakemisto tietohakemiston sisällä ja oletusarvoisesti käytössä.

Mikä on Journaling in MongoDB?

Tässä prosessissa kirjoitusoperaatio tapahtuu mongodissa, joka sitten luo muutoksia yksityiseen näkymään. Ensimmäinen lohko on muisti ja toinen lohko on 'minun levy'. Määritetyn aikavälin jälkeen, jota kutsutaan päiväkirjaan sitoutumisväliksi, yksityinen näkymä kirjoittaa nämä toiminnot päiväkirjahakemistoon (joka sijaitsee levyllä).

Kun päiväkirja sitoutuu, mongod työntää tiedot jaettuun näkymään. Osana prosessia se kirjoitetaan todelliseen tietohakemistoon jaetusta näkymästä (koska tämä prosessi tapahtuu taustalla). Perusetuna on, että sykli on lyhennetty 60 sekunnista 200 millisekuntiin.

Skenaariossa, jossa keskeytys tapahtuu milloin tahansa tai flash-levy ei ole käytettävissä viimeisten 59 sekunnin ajan (pitäen mielessä päiväkirjahakemisto- / kirjoitusoperaatioiden olemassa olevat tiedot), sitten kun seuraavan kerran mongodi alkaa, se toistaa periaatteessa kaikki kirjoitusoperaatiot kirjaa ja kirjoittaa todelliseen tietohakemistoon.

Kuinka se toimii?

Tässä, kun sitoutuminen tapahtuu, sama toiminto toistetaan jaetussa näkymässä ja sitten 60 sekunnin kuluttua flash-levy tapahtuu.

Sen jälkeen, kun se on välähdetty, tiedot käsitellään. Tässä olevat tiedot merkitään käsitellyiksi päiväkirjahakemistossa, mikä tarkoittaa, että se tarkistaa 60 sekunnin välein kopioimansa tiedot ja ne, joiden oletetaan poistettavan päiväkirjasta.

Journalingin käyttö on kuin lokin käyttöä, syynä on se, että se luo kirjoitusoptiikan kestävyyden lisäämiseksi. Kirjaaminen on väliaikaista tallennustilaa, mikä tarkoittaa, että se pitää vain kirjoitustoimintalokin odottavana päiväkirjahakemistossa. Jaetussa näkymässä on myös tiedot, mutta päiväkirjahakemistossa on toiminnot.

kuinka tulla tekoälyinsinööriksi

Esimerkiksi, jos käyttäjä kirjoittaa joitain tietoja ilman kirjaamista, niin mitä tietoja kirjoitetaankin, sen muistikartoitus antaa käyttäjän tietää sijainnin, johon tiedot kirjoitetaan.

Linkki yksityisen näkymän ja jaetun näkymän välillä

Kun sitoutuminen tapahtuu, se merkitään prosessiksi päiväkirjahakemistossa, ja jaetun / yksityisen näkymän nykyiselle näkymälle on tehty toinen kartoitus (ilman tietojen jakamista).

Kaaviossa kaikki siniset kohteet ovat RAM-muistissa (random access memory) ja Saffron tarkoittaa levyä.

Jos siinä tapauksessa tietoja ei välitetä tietohakemistossa, mutta kirjoitusoperaatiot ovat datahakemistossa, mongodi käsittelee ja soveltaa kirjoitusoperaatioita datahakemistoon.

Tärkeä huomioitava asia on, että tilanteessa, jossa kaatuminen tapahtuu ennen päiväkirjan sitoutumista, tiedot, jotka olivatliitteenä200 millisekunnin sisällä menetetään.

Huomaa myös, että päiväkirjahakemistossa kirjoitamme todellisen toiminnan.

Esimerkkilausekkeessa, kuten ”Db.class.insert” mikä on lisäysoperaatio, luokkatoimintoihin lisätyt tiedot. Joten luokan toiminta ei todellisuudessa jää, mutta operaatio on.

On myös huomattava, että jos päiväkirjan käyttö viivästyy, se vaikuttaa suorituskykyyn.

Journaling voi olla myös taustalla asynkronisena prosessina eikä mitään tekemistä toiminnoissa synkronisesti. Kirjaamista suositellaan myös tuotannossa.

Toiseksi päiväkirjaan sitoutumisväli '200 millisekuntia' on konfiguroitavissa, mikä voidaan ottaa käyttöön '- - päiväkirjaan sitoutumisväli' välillä 3 - 300 millisekuntia, mikä kaikki riippuu toimimattomista vaatimuksista (kuinka usein kirjoitus tapahtuu ja kuinka usein haluaa kirjoittaa päiväkirjahakemistoon). Jos raskaita kirjoitusoperaatioita on meneillään, on suositeltavaa käyttää vähemmän millisekunteja.

Huomaa myös, että yksityinen näkymä pitää sisällään todelliset tiedot, koska yksityinen on yhdistetty jaettuun näkymään. Tässä jaettu näkymä vilkuttaa sen datahakemistoon.

Tässä prosessissa saamamme etu on siinä tapauksessa, että palvelin kaatuu eikä ole käytettävissä tietoja, jotka on kirjoitettava salamiin, seuraava palvelimen uudelleenkäynnistävä mongodi tarkistaa päiväkirjahakemiston palautumisen. Se palauttaa, toistaa ja kirjoittaa operaatiot datahakemistoon ja sitten se alkaa.

Onko sinulla kysymys meille? Mainitse ne kommenttiosassa ja palaamme sinuun.

Aiheeseen liittyvät julkaisut:

javan kielet ovat muuttumattomia