Comprendre el diari a MongoDB



El bloc proporciona una breu informació sobre el diari a MongoDB

Treballar amb Mongod Write Operation

Mongod allotja principalment les operacions d'escriptura a la memòria en vista compartida. Es diu compartit perquè té mapatge de memòria en disc real.





Per exemple, el fitxer de dades de l’usuari es manté a les dades dd i té un mapatge de memòria. Aquí, primer empeny totes les dades a la memòria i, després d’un interval especificat, emet les dades a la memòria, que es produeix cada seixanta segons i l’usuari no es veu afectat en aquest procés.

Aquí, aquest procés s’anomena Opció sense diari, el que significa que en cas que hi hagi un retard de 60 segons per guardar les dades de la memòria al disc o un apagat brusc, vol dir que les dades que hi ha a la memòria no es poden recuperar. Per tant, el diari esdevé rellevant aquí.



gestió de compres en gestió de projectes

És important saber que el Diari s'ha desactivat per defecte abans de la versió 2.4.10, però després s'ha activat.

En el moment en què comença el procés mongod, es pot observar la següent afirmació:

Revista dir = D: Rana2custom datajournal



Aquí, Journal Directory és un directori fill dins del directori de dades i està habilitat per defecte.

Què és el diari a MongoDB?

En aquest procés, es produeix una operació d'escriptura a mongod, que crea canvis a la vista privada. El primer bloc és la memòria i el segon bloc és ‘el meu disc’. Després d'un interval especificat, que s'anomena 'interval de confirmació de diari', la vista privada escriu aquestes operacions al directori de diari (que resideix al disc).

Una vegada que es produeix la publicació del diari, mongod empeny les dades a la vista compartida. Com a part del procés, s’escriu al directori de dades reals des de la vista compartida (ja que aquest procés passa en segon pla). L’avantatge bàsic és que tenim un cicle reduït de 60 segons a 200 mil·lisegons.

En un escenari en què es produeixi una ruptura en qualsevol moment o el disc flash no estigui disponible durant els darrers 59 segons (tenint en compte les dades existents al directori de diari / operacions d’escriptura), quan la pròxima vegada que s’iniciï mongod, bàsicament reproduirà totes les operacions d’escriptura registra i escriu al directori de dades real.

Com funciona?

Aquí, una vegada que es produeix un commit, es reprodueix la mateixa operació a la vista compartida i, després de seixanta segons, es produeix el disc flash.

Després de parpellejar, es processen les dades. Les dades aquí es marquen com a processades al directori de la revista, el que significa que cada seixanta segons comprova les dades que ha copiat i les que se suposa que s’han d’eliminar del diari.

L’ús de Journaling és com utilitzar un registre, la raó és que crea un registre d’operacions d’escriptura per augmentar la durabilitat. El diari és emmagatzematge temporal, el que significa que només manté el registre d'operacions d'escriptura pendent al directori de diari. A més, la visualització compartida té les dades, però el directori del diari té les operacions.

Per exemple, si l’usuari està escrivint algunes dades sense crear un diari, qualsevol que sigui la informació escrita, la seva assignació de memòria permet a l’usuari conèixer la ubicació on s’escriuen les dades.

Enllaç entre Visualització privada i Visualització compartida

Després que es produeixi el commit, es marca com a procés al directori de la revista i hi ha una altra assignació feta per a la vista actual de la vista compartida / privada (sense compartir dades).

Al gràfic, tots els elements blaus es troben a la memòria RAM (memòria d’accés aleatori) i el safrà indica el disc.

Si en el cas, les dades no apareixen al directori de dades, però hi ha operacions d’escriptura al directori de dades, mongod reprocessarà i aplicarà operacions d’escriptura al directori de dades.

Un punt important a destacar és que en un escenari en què es produeix un bloqueig abans de la publicació del diari, les dades que erenafegites perdran en un termini de 200 mil·lisegons.

quin mètode de classe d'escàner llegeix una cadena?

Tingueu en compte també que al directori de la revista continuem escrivint l’operació real.

A la declaració d'exemple, com ara 'Db.class.insert' que és una operació d'inserció, les dades inserides a les operacions de classe. Per tant, l’operació de classe no es manté, sinó que resideix.

També s’ha d’observar que si hi ha un retard en l’ús de la revista, afecta el rendiment.

També es pot tenir Journaling en segon pla com un procés asíncron i no fer res en les operacions de manera síncrona. També es recomana el diari en producció.

En segon lloc, es pot configurar l'interval de temps de confirmació de diari de '200 mil·lisegons', que es pot habilitar amb '- - interval de confirmació de diari' entre 3 i 300 mil·lisegons, que depèn dels requisits que no funcionin (amb quina freqüència ocorren les escriptures i la freqüència amb què es vol escriure al directori de la revista). En cas que s’estiguin realitzant operacions d’escriptura pesades, és recomanable tenir mil·lisegons inferiors.

Tingueu en compte també que la visualització privada conté dades reals, ja que les privades es mapen amb la vista compartida. La vista compartida aquí la converteix en directori de dades.

En aquest procés, l’avantatge que obtenim és que, en cas que hi hagi fallades del servidor i no hi hagi dades disponibles que s’hagin d’escriure en flash, el següent servidor que reiniciarà mongod comprovarà el directori del diari per recuperar-lo. Recuperarà, reproduirà i escriurà les operacions al directori de dades i començarà.

Tens alguna pregunta? Esmenteu-los a la secció de comentaris i us respondrem.

Articles Relacionats:

cogombre java selenium webdriver exemple