Recherche…


Remarques

Dans MongoDB 3.0, MMAP (par défaut) et WiredTiger sont les moteurs de stockage stables. En général, si votre application est trop lourde, utilisez MMAP. Si son écriture est lourde, utilisez WiredTiger.

Votre solution peut également comporter un ensemble de membres de réplicas mixtes dans lequel un nœud peut être configuré avec MMAP et un autre avec WiredTiger. Vous pouvez utiliser l'un pour insérer des données massives et l'autre pour lire avec des outils analytiques.

Après MongoDB 3.2, WiredTiger devient le moteur par défaut.

Le MMAP

MMAP est un moteur de stockage enfichable nommé d'après la commande mmap() Linux. Il mappe les fichiers sur la mémoire virtuelle et optimise les appels en lecture. Si vous avez un fichier volumineux mais que vous ne devez en lire qu'une petite partie, mmap() est beaucoup plus rapide qu'un appel read() qui ramènerait l'intégralité du fichier en mémoire.

Un inconvénient est que vous ne pouvez pas avoir deux appels en écriture traités en parallèle pour la même collection. Ainsi, MMAP dispose d'un verrouillage au niveau de la collection (et non d'un verrouillage au niveau du document comme le propose WiredTiger). Ce verrouillage de collection est nécessaire car un index MMAP peut référencer des documents multiples et si ces documents pouvaient être mis à jour simultanément, l'index serait incohérent.

WiredTiger

WiredTiger prend en charge les arborescences LSM pour stocker les index . Les arborescences LSM sont plus rapides pour les opérations d'écriture lorsque vous avez besoin d'écrire des charges de travail énormes d'inserts aléatoires.

Dans WiredTiger, il n'y a pas de mises à jour sur place . Si vous devez mettre à jour un élément d'un document, un nouveau document sera inséré lorsque l'ancien document sera supprimé.

WiredTiger offre également une concurrence au niveau du document . Cela suppose que deux opérations d'écriture n'affecteront pas le même document, mais si c'est le cas, une opération sera rembobinée et exécutée plus tard. C'est un bon coup de pouce si les rembobinages sont rares.

WiredTiger prend en charge les algorithmes Snappy et zLib pour la compression des données et des index dans le système de fichiers. Snappy est la valeur par défaut. Il consomme moins de ressources processeur mais a un taux de compression inférieur à celui de zLib.

Comment utiliser le moteur WiredTiger

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

Remarque:

  1. Après mongodb 3.2, le moteur par défaut est WiredTiger.
  2. newWiredTigerDBPath ne doit pas contenir de données d'un autre moteur de stockage. Pour migrer vos données, vous devez les sauvegarder et les réimporter dans le nouveau moteur de stockage.
    mongodump --out <exportDataDestination>
    mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
    mongorestore <exportDataDestination>

En mémoire

Toutes les données sont stockées en mémoire (RAM) pour une lecture / un accès plus rapide.

mongo-roches

Un moteur de valeur-clé créé pour s'intégrer à RocksDB de Facebook.

Fusion-io

Un moteur de stockage créé par SanDisk qui permet de contourner la couche du système de fichiers du système d'exploitation et d'écrire directement sur le périphérique de stockage.

TokuMX

Un moteur de stockage créé par Percona qui utilise des index d'arborescence fractale.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow