Buscar..


Observaciones

En MongoDB 3.0, MMAP (predeterminado) y WiredTiger son los motores de almacenamiento estable. Por lo general, si su aplicación es de lectura pesada, use MMAP. Si su escritura es pesada, use WiredTiger.

Su solución también puede tener miembros de un conjunto de réplicas mixtas donde puede tener un nodo configurado con MMAP y otro con WiredTiger. Puede usar uno para insertar datos masivos y el otro para leer con herramientas analíticas.

Después de MongoDB 3.2, WiredTiger se convierte en el motor predeterminado.

MMAP

MMAP es un motor de almacenamiento conectable que lleva el nombre del comando mmap() Linux. Asigna archivos a la memoria virtual y optimiza las llamadas de lectura. Si tiene un archivo grande pero necesita leer solo una pequeña parte de él, mmap() es mucho más rápido que una llamada read() que llevaría todo el archivo a la memoria.

Una desventaja es que no se pueden procesar dos llamadas de escritura en paralelo para la misma colección. Por lo tanto, MMAP tiene un bloqueo a nivel de colección (y no un bloqueo a nivel de documento como lo ofrece WiredTiger). Este bloqueo de recopilación es necesario porque un índice MMAP puede hacer referencia a múltiples documentos y, si esos documentos pudieran actualizarse simultáneamente, el índice sería inconsistente.

WiredTiger

WiredTiger admite árboles LSM para almacenar índices . Los árboles LSM son más rápidos para las operaciones de escritura cuando necesita escribir grandes cargas de trabajo de inserciones aleatorias.

En WiredTiger, no hay actualizaciones en el lugar . Si necesita actualizar un elemento de un documento, se insertará un nuevo documento mientras que se eliminará el documento anterior.

WiredTiger también ofrece concurrencia a nivel de documentos . Se supone que dos operaciones de escritura no afectarán al mismo documento, pero si lo hace, una operación se rebobinará y se ejecutará más adelante. Eso es un gran aumento de rendimiento si los rebobinados son raros.

WiredTiger admite los algoritmos Snappy y zLib para la compresión de datos e índices en el sistema de archivos. Snappy es el predeterminado. Requiere menos CPU, pero tiene una tasa de compresión más baja que zLib.

Cómo usar el motor WiredTiger

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

Nota:

  1. Después de mongodb 3.2, el motor predeterminado es WiredTiger.
  2. newWiredTigerDBPath no debe contener datos de otro motor de almacenamiento. Para migrar sus datos, debe volcarlos y volver a importarlos en el nuevo motor de almacenamiento.
    mongodump --out <exportDataDestination>
    mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
    mongorestore <exportDataDestination>

En memoria

Todos los datos se almacenan en la memoria (RAM) para una lectura / acceso más rápidos.

rocas mongo

Un motor de valor-clave creado para integrarse con RocksDB de Facebook.

Fusión-io

Un motor de almacenamiento creado por SanDisk que hace posible omitir la capa del sistema de archivos del sistema operativo y escribir directamente en el dispositivo de almacenamiento.

TokuMX

Un motor de almacenamiento creado por Percona que utiliza índices de árboles fractales.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow