Personalmente, preferisco il motore di archiviazione mmapv1 per ora per tre motivi.
Motivo 1: maturità
Non è che WiredTiger sia immaturo. Ma mmapv1 è ben compreso e testato in battaglia su e giù, avanti e indietro, sopra e oltre. WiredTiger ha avuto alcuni problemi seri (vedi http://jira.mongodb.com per i dettagli) abbastanza recentemente, e non sono disposto a chiedere ai miei clienti di trovare il prossimo nel modo più difficile.
Motivo 2: caratteristiche
Dato, WT ha alcune caratteristiche ... incredibilmente straordinarie. Il fatto è: non ho visto nessuno beneficiarne. Compressione? Ad ogni modo, sacrifichi piuttosto duramente per ottenere prestazioni per spazio su disco piuttosto economico. Mancanza del problema di migrazione dei documenti per l'espansione dei documenti? Bene, abbiamo ancora il limite di dimensioni di 16 MB e una maggiore complessità per i documenti incorporati, specialmente quando l'incorporamento è eccessivo.
Ci sono altre funzionalità, ma in generale: non vedo molto beneficio da loro al momento .
Motivo 3: costo totale di proprietà
Per i nuovi progetti, WT potrebbe andare bene, soprattutto dal 3.2, poiché non si applica quanto segue.
Fare migrazioni di dati è costoso. Deve essere pianificato, il piano deve essere concordato da tutte le parti interessate, i piani di emergenza di emergenza devono essere creati e concordati, la migrazione deve essere preparata, eseguita e rivista. Ora moltiplica il tempo necessario con le parti interessate che fanno parte di questo processo e i costi per la migrazione dei dati salgono alle stelle. L'utile sul capitale investito sembra invece piuttosto modesto. È possibile ridimensionare un po 'invece di eseguire una migrazione se si tiene conto di questi fattori. Per darvi un'idea: stimerei all'incirca una "settimana uomo" per stakeholder se una migrazione è pianificata, eseguita e rivista correttamente. Con un costo di $ 100 l'ora a persona e solo tre persone coinvolte (manager, DBA e sviluppatore), ciò equivale a $ 12.000. Si noti che questa è una stima prudente.
Conclusione
Tutti i suddetti fattori mi hanno portato alla conclusione di non usare WT di sorta. Al momento.
Aggiornare
Questo post ha alcuni mesi ormai, quindi merita un aggiornamento
Alla scadenza
I miei commenti originali sulla maturità sono in qualche modo obsoleti. WiredTiger non ha avuto grossi problemi da un po 'di tempo ed è diventato il motore di archiviazione predefinito a partire da MongoDB 3.2
Sulle caratteristiche
I miei commenti originali sono ancora validi, imho.
Compressione
Tuttavia, quando si è limitati al budget o, più in generale, le prestazioni non sono la preoccupazione principale, il compromesso delle prestazioni è piuttosto piccolo e sostanzialmente si scambiano lievi impatti sulle prestazioni (rispetto al WT non compresso) per lo spazio su disco, utilizzando ciò che altrimenti sarebbe inattivo in giro: la CPU.
crittografia
MongoDB 3.2 Enterprise ha introdotto la possibilità di crittografare gli archivi WiredTiger. Per i dati con esigenze di sicurezza avanzate, questa è una funzione killer e rende WT l'unico motore di archiviazione di scelta, sia tecnicamente (MMAPv1 non supporta la crittografia) sia concettualmente. Mettere da parte la possibilità di partizioni del disco crittografate, ovviamente, anche se potresti non avere questa opzione in alcuni ambienti.
Blocco a livello di documento
Devo ammettere che ho sostanzialmente omesso quella caratteristica di WT nella mia analisi di cui sopra, principalmente perché non si applicava a me o ai miei clienti quando ho scritto la risposta originale.
A seconda della configurazione, principalmente quando si hanno molti client di scrittura simultanea, questa funzione può fornire un notevole incremento delle prestazioni.
Sul costo totale di proprietà
Fare le migrazioni è ancora costoso. Tuttavia, tenendo conto dei cambiamenti di maturità e della visione modificata delle caratteristiche, una migrazione potrebbe valere l'investimento se:
- È necessaria la crittografia (solo Enterprise Edition!)
- Le prestazioni non sono la tua principale preoccupazione assoluta e puoi risparmiare denaro nel lungo periodo (calcolare in modo conservativo) usando la compressione
- Esistono molti processi che scrivono contemporaneamente, poiché l'aumento delle prestazioni potrebbe farvi ridimensionare verticalmente o orizzontalmente.
Conclusione aggiornata
Per i nuovi progetti, ora uso WiredTiger. Dal momento che una migrazione da uno storage WiredTiger compresso a uno non compresso è piuttosto semplice, tendo a iniziare con la compressione per migliorare l'utilizzo della CPU ("ottenere più bang per il dollaro"). Se la compressione ha un impatto notevole sulle prestazioni o sull'UX, migra verso WiredTiger non compresso.
Per i progetti con molti scrittori simultanei, la risposta alla migrazione o meno è quasi sempre anche "Sì", a meno che il budget del progetto non vieti l'investimento. A lungo termine, l'aumento delle prestazioni dovrebbe ripagarsi da solo, se la distribuzione fosse altrimenti ragionevolmente pianificata. Tuttavia, è necessario aggiungere un po 'di tempo di sviluppo al calcolo, poiché in alcuni casi il driver deve essere aggiornato e potrebbero esserci problemi che devono essere affrontati.
Per i progetti con budget limitato e per il momento non può permettersi più spazio su disco, la migrazione a un WiredTiger compresso può essere un'opzione, ma la compressione carica un po 'la CPU, qualcosa di inaudito con MMAPv1. Inoltre, i costi di migrazione potrebbero essere proibitivi per un tale progetto.