Κατανόηση του Journaling στο MongoDB



Το ιστολόγιο δίνει μια σύντομη περιγραφή σχετικά με το Journaling in MongoDB

Εργασία με τη λειτουργία εγγραφής Mongod

Το Mongod φιλοξενεί κυρίως τις λειτουργίες εγγραφής στη μνήμη σε κοινόχρηστη προβολή. Ονομάζεται κοινόχρηστο επειδή έχει χαρτογράφηση μνήμης σε πραγματικό δίσκο.





Για παράδειγμα, το αρχείο δεδομένων του χρήστη διατηρείται σε δεδομένα dd και έχει αντιστοίχιση μνήμης. Εδώ, ωθεί πρώτα όλα τα δεδομένα στη μνήμη και μετά από ένα καθορισμένο διάστημα αναβοσβήνει τα δεδομένα στη μνήμη, η οποία εμφανίζεται κάθε εξήντα δευτερόλεπτα και ο χρήστης δεν επηρεάζεται από αυτήν τη διαδικασία.

Εδώ, αυτή η διαδικασία ονομάζεται No Journal Option, που σημαίνει ότι σε περίπτωση καθυστέρησης 60 δευτερολέπτων για αποθήκευση δεδομένων από τη μνήμη στο δίσκο ή απότομο τερματισμό λειτουργίας, αυτό σημαίνει ότι όποια δεδομένα είναι στη μνήμη ενδέχεται να μην ανακτηθούν. Έτσι, το Journaling γίνεται σχετικό εδώ.



τι είναι αμετάβλητο αντικείμενο στην Java

Είναι σημαντικό να γνωρίζετε ότι το Journaling απενεργοποιήθηκε πριν από την έκδοση 2.4.10 από προεπιλογή, αλλά μετά από αυτό έχει ενεργοποιηθεί.

Τη στιγμή που ξεκινά η διαδικασία mongod, παρατηρείται η ακόλουθη δήλωση:

Εφημερίδα dir = D: Rana2custom datajournal



Εδώ, το Journal Directory είναι ένας θυγατρικός κατάλογος μέσα στον κατάλογο δεδομένων και από προεπιλογή είναι ενεργοποιημένη.

Τι είναι το Journaling στο MongoDB;

Σε αυτήν τη διαδικασία, μια λειτουργία εγγραφής συμβαίνει στο mongod, το οποίο στη συνέχεια δημιουργεί αλλαγές στην ιδιωτική προβολή. Το πρώτο μπλοκ είναι η μνήμη και το δεύτερο είναι «ο δίσκος μου». Μετά από ένα καθορισμένο διάστημα, το οποίο ονομάζεται «χρονικό διάστημα δέσμευσης ημερολογίου», η ιδιωτική προβολή γράφει αυτές τις λειτουργίες στον κατάλογο ημερολογίων (που βρίσκονται στο δίσκο).

Μόλις συμβεί η εφημερίδα, ο mongod ωθεί τα δεδομένα σε κοινή προβολή. Ως μέρος της διαδικασίας, γράφεται στον πραγματικό κατάλογο δεδομένων από την κοινόχρηστη προβολή (καθώς αυτή η διαδικασία συμβαίνει στο παρασκήνιο). Το βασικό πλεονέκτημα είναι ότι έχουμε έναν μειωμένο κύκλο από 60 δευτερόλεπτα σε 200 χιλιοστά του δευτερολέπτου.

Σε ένα σενάριο όπου υπάρχει διακοπή σε οποιοδήποτε χρονικό σημείο ή ο δίσκος φλας παραμένει μη διαθέσιμος για τα τελευταία 59 δευτερόλεπτα (έχοντας κατά νου τα υπάρχοντα δεδομένα στον κατάλογο περιοδικών / εγγραφές εγγραφής), και όταν την επόμενη φορά που ξεκινά το mongod, βασικά επαναλαμβάνει όλη τη λειτουργία εγγραφής καταγράφει και γράφει στον πραγματικό κατάλογο δεδομένων.

Πως δουλεύει?

Εδώ, μόλις συμβεί μια δέσμευση, η ίδια λειτουργία επαναλαμβάνεται σε κοινή προβολή και μετά, μετά από εξήντα δευτερόλεπτα, συμβαίνει ο δίσκος flash.

Αφού αναβοσβήνει, τα δεδομένα υποβάλλονται σε επεξεργασία. Τα δεδομένα εδώ επισημαίνονται ως επεξεργασμένα στον κατάλογο περιοδικών, πράγμα που σημαίνει ότι κάθε εξήντα δευτερόλεπτα, ελέγχει τα δεδομένα που έχει αντιγράψει και αυτά που υποτίθεται ότι πρέπει να αφαιρεθούν από το ημερολόγιο.

Η χρήση του Journaling είναι σαν να χρησιμοποιείτε ένα αρχείο καταγραφής, ο λόγος είναι ότι δημιουργεί ένα αρχείο καταγραφής λειτουργίας εγγραφής για να αυξήσει την ανθεκτικότητα. Το Journaling είναι προσωρινή αποθήκευση, που σημαίνει ότι διατηρεί μόνο το αρχείο καταγραφής λειτουργίας ως εκκρεμεί στον κατάλογο περιοδικών. Επίσης, η κοινόχρηστη προβολή έχει τα δεδομένα, αλλά ο κατάλογος περιοδικών έχει τις λειτουργίες.

μετατρέψτε το δυαδικό σε δεκαδικό java

Για παράδειγμα, εάν ο χρήστης γράφει ορισμένα δεδομένα χωρίς Journaling, τότε όποια δεδομένα είναι γραμμένα, η χαρτογράφηση της μνήμης του επιτρέπει στον χρήστη να γνωρίζει τη θέση όπου γράφονται τα δεδομένα.

Σύνδεση μεταξύ ιδιωτικής προβολής και κοινόχρηστης προβολής

Μετά την πραγματοποίηση της δέσμευσης, επισημαίνεται ως διαδικασία στον κατάλογο περιοδικών και υπάρχει άλλη αντιστοίχιση για την τρέχουσα προβολή κοινής / ιδιωτικής προβολής (χωρίς κοινή χρήση δεδομένων).

Στο γράφημα, όλα τα μπλε στοιχεία βρίσκονται στη μνήμη RAM (μνήμη τυχαίας προσπέλασης) και το Saffron δηλώνει το δίσκο.

Εάν σε περίπτωση, τα δεδομένα δεν αναβοσβήνουν στον κατάλογο δεδομένων αλλά υπάρχουν λειτουργίες εγγραφής στον κατάλογο δεδομένων, τότε το mongod θα επανεπεξεργαστεί και θα εφαρμόσει λειτουργίες εγγραφής στον κατάλογο δεδομένων.

Ένα σημαντικό σημείο που πρέπει να σημειωθεί είναι ότι σε ένα σενάριο όπου συμβαίνει ένα σφάλμα πριν από τη δέσμευση του περιοδικού, τα δεδομένα που ήτανπροσηρτημένοςμέσα σε 200 χιλιοστά του δευτερολέπτου θα χαθούν.

Σημειώστε επίσης ότι στον κατάλογο περιοδικών, συνεχίζουμε να γράφουμε την πραγματική λειτουργία.

Στο παράδειγμα δήλωσης, όπως 'Db.class.insert' που είναι μια λειτουργία εισαγωγής, τα δεδομένα που εισάγονται σε λειτουργίες κλάσης. Έτσι, η λειτουργία της τάξης δεν παραμένει στην πραγματικότητα, αλλά η λειτουργία βρίσκεται.

Πρέπει επίσης να παρατηρηθεί ότι εάν υπάρχει καθυστέρηση στη χρήση του περιοδικού, επηρεάζει την απόδοση.

Κάποιος μπορεί επίσης να έχει το Journaling στο παρασκήνιο ως ασύγχρονη διαδικασία και να μην κάνει τίποτα στις λειτουργίες με σύγχρονο τρόπο. Το περιοδικό συνιστάται επίσης στην παραγωγή.

Δεύτερον, το χρονικό πλαίσιο ανάληψης ημερολογίου δέσμευσης «200 χιλιοστά του δευτερολέπτου» είναι διαμορφώσιμο, το οποίο μπορεί να ενεργοποιηθεί με «- - χρονικό διάστημα δέσμευσης ημερολογίου» οπουδήποτε μεταξύ 3 και 300 χιλιοστών του δευτερολέπτου, το οποίο εξαρτάται από τις απαιτήσεις που δεν λειτουργούν (πόσο συχνά συμβαίνουν οι εγγραφές και πόσο συχνά θέλει κανείς να γράφει στον κατάλογο περιοδικών). Σε περίπτωση που εκτελούνται βαριές εγγραφές, τότε συνιστάται να έχετε λιγότερα χιλιοστά του δευτερολέπτου.

Σημειώστε επίσης ότι η ιδιωτική προβολή διατηρεί πραγματικά δεδομένα καθώς η ιδιωτική αντιστοιχεί σε κοινή προβολή. Η κοινόχρηστη προβολή εδώ την αναβοσβήνει στον κατάλογο δεδομένων.

Σε αυτήν τη διαδικασία, το πλεονέκτημα που κερδίζουμε είναι, σε περίπτωση που έχουμε σφάλματα διακομιστή και δεν υπάρχουν διαθέσιμα δεδομένα που πρέπει να γραφτούν σε φλας, τότε ο επόμενος διακομιστής επανεκκίνησης του mongod θα ελέγξει τον κατάλογο περιοδικών για ανάκτηση. Θα ανακτήσει, θα κάνει επανάληψη και εγγραφή λειτουργιών στον κατάλογο δεδομένων και στη συνέχεια θα ξεκινήσει.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.

Σχετικές αναρτήσεις:

ποια είναι η χρήση του προγραμματισμού υποδοχών