Zoeken…


Opmerkingen

In MongoDB 3.0 zijn MMAP (standaard) en WiredTiger de stabiele opslagengines. Gebruik meestal MMAP als uw app zwaar is. Gebruik WiredTiger als dit zwaar is.

Uw oplossing kan ook een gemengde replica-set hebben, waarbij u een knooppunt kunt configureren met MMAP en een ander met WiredTiger. U kunt de ene gebruiken om enorme gegevens in te voegen en de andere om te lezen met analytische tools.

Na MongoDB 3.2 wordt WiredTiger de standaardmotor.

MMAP

MMAP is een inplugbare opslag-engine die is vernoemd naar de mmap() Linux-opdracht. Het wijst bestanden toe aan het virtuele geheugen en optimaliseert leesgesprekken. Als u een groot bestand hebt, maar slechts een klein deel ervan moet lezen, is mmap() veel sneller dan een read() -aanroep die het hele bestand naar het geheugen zou brengen.

Een nadeel is dat het niet mogelijk is om twee schrijfoproepen tegelijkertijd voor dezelfde verzameling te verwerken. MMAP heeft dus vergrendeling op collectieniveau (en niet op documentniveau zoals WiredTiger biedt). Deze verzameling vergrendeling is noodzakelijk omdat één MMAP-index kan verwijzen naar meerdere documenten en als die documenten tegelijkertijd kunnen worden bijgewerkt, is de index niet consistent.

WiredTiger

WiredTiger ondersteunt LSM-bomen om indexen op te slaan . LSM-bomen zijn sneller voor schrijfbewerkingen wanneer u enorme werklasten van willekeurige invoegingen moet schrijven.

In WiredTiger zijn er geen updates ter plaatse . Als u een element van een document moet bijwerken, wordt een nieuw document ingevoegd terwijl het oude document wordt verwijderd.

WiredTiger biedt ook gelijktijdigheid op documentniveau . Er wordt van uitgegaan dat twee schrijfbewerkingen hetzelfde document niet beïnvloeden, maar als dit het geval is, wordt één bewerking teruggespoeld en later uitgevoerd. Dat is een geweldige prestatieboost als terugspoelen zeldzaam is.

WiredTiger ondersteunt Snappy- en zLib-algoritmen voor het comprimeren van gegevens en indexen in het bestandssysteem. Snappy is de standaard. Het is minder CPU-intensief maar heeft een lagere compressiesnelheid dan zLib.

Hoe WiredTiger Engine te gebruiken

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>

Notitie:

  1. Na mongodb 3.2 is de standaardmotor WiredTiger.
  2. newWiredTigerDBPath mag geen gegevens van een andere opslag-engine bevatten. Om uw gegevens te migreren, moet u ze dumpen en opnieuw importeren in de nieuwe opslag-engine.
    mongodump --out <exportDataDestination>
    mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
    mongorestore <exportDataDestination>

In-memory

Alle gegevens worden opgeslagen in het geheugen (RAM) voor sneller lezen / toegang.

mongo-rocks

Een sleutel / waarde-engine die is gemaakt om te integreren met de RocksDB van Facebook.

Fusion-io

Een opslagmotor gemaakt door SanDisk die het mogelijk maakt om de OS-bestandssysteemlaag te omzeilen en rechtstreeks naar het opslagapparaat te schrijven.

TokuMX

Een opslagmotor gemaakt door Percona die gebruik maakt van fractale boomindexen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow