Suche…


Bemerkungen

In MongoDB 3.0 sind MMAP (Standard) und WiredTiger die stabilen Speicher-Engines. Normalerweise verwenden Sie MMAP, wenn Ihre App lesebereit ist. Wenn es sehr schwer ist, verwenden Sie WiredTiger.

Ihre Lösung verfügt möglicherweise auch über gemischte Replikatsatzmitglieder, bei denen Sie einen Knoten mit MMAP und einen anderen mit WiredTiger konfigurieren können. Sie können eine verwenden, um umfangreiche Daten einzufügen, und die andere, um sie mit analytischen Werkzeugen zu lesen.

Nach MongoDB 3.2 wird WiredTiger zur Standard-Engine.

MMAP

MMAP ist eine steckbare Speicher-Engine, die nach dem Befehl mmap() Linux benannt wurde. Es ordnet Dateien dem virtuellen Speicher zu und optimiert Leseaufrufe. Wenn Sie eine große Datei haben, aber nur einen kleinen Teil davon lesen müssen, ist mmap() viel schneller als ein read() Aufruf, der die gesamte Datei in den Speicher bringt.

Ein Nachteil besteht darin, dass nicht zwei Schreibaufrufe für dieselbe Sammlung parallel verarbeitet werden können. Daher verfügt MMAP über Sperren auf Sammlungsebene (und nicht wie von WiredTiger angebotene Sperren auf Dokumentebene). Diese Auflistungssperre ist erforderlich, da ein MMAP-Index auf mehrere Dokumente verweisen kann. Wenn diese Dokumente gleichzeitig aktualisiert werden könnten, wäre der Index inkonsistent.

WiredTiger

WiredTiger unterstützt LSM-Bäume zum Speichern von Indizes . LSM-Bäume sind schneller für Schreibvorgänge, wenn Sie große Arbeitslasten von zufälligen Einfügungen schreiben müssen.

In WiredTiger gibt es keine direkten Updates . Wenn Sie ein Element eines Dokuments aktualisieren müssen, wird ein neues Dokument eingefügt, während das alte Dokument gelöscht wird.

WiredTiger bietet auch Parallelität auf Dokumentebene . Es wird davon ausgegangen, dass sich zwei Schreibvorgänge nicht auf dasselbe Dokument auswirken. Andernfalls wird ein Vorgang zurückgespult und später ausgeführt. Das ist ein großer Leistungsschub, wenn Rückspulungen selten sind.

WiredTiger unterstützt die Algorithmen Snappy und zLib zur Komprimierung von Daten und Indizes im Dateisystem. Bissig ist die Standardeinstellung. Es ist weniger CPU-intensiv, hat jedoch eine niedrigere Komprimierungsrate als zLib.

So verwenden Sie die WiredTiger Engine

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

Hinweis:

  1. Nach mongodb 3.2 ist die Standard-Engine WiredTiger.
  2. newWiredTigerDBPath sollte keine Daten einer anderen Speicher-Engine enthalten. Um Ihre Daten zu migrieren, müssen Sie sie sichern und erneut in die neue Speicher-Engine importieren.
    mongodump --out <exportDataDestination>
    mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
    mongorestore <exportDataDestination>

In Erinnerung

Alle Daten werden im Arbeitsspeicher (RAM) gespeichert, um das Lesen zu erleichtern.

Mongo-Felsen

Eine Schlüsselwertmaschine, die zur Integration mit Facebooks RocksDB entwickelt wurde.

Fusion-io

Eine von SanDisk erstellte Speicher-Engine, die es ermöglicht, die Dateisystemschicht des Betriebssystems zu umgehen und direkt auf das Speichergerät zu schreiben.

TokuMX

Eine von Percona erstellte Speicher-Engine, die fraktale Baumindizes verwendet



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow