Working with Storage Engines

1. Understanding WiredTiger Engine

FeatureDetail
DefaultSince 3.2
ConcurrencyDocument-level locking
MVCCSnapshot isolation per operation
CheckpointsEvery 60s by default

2. Configuring WiredTiger Cache

SettingDefault
cacheSizeGBmax(50% × (RAM − 1GB), 256MB)
RecommendationLeave default unless dedicated host

3. Using Compression Options

AlgorithmDetail
snappy (default)Balanced CPU / ratio
zlibHigher ratio, more CPU
zstd 4.2+Best balance; default for journal in 6.0+
noneFastest, largest

4. Configuring Journal Commits

SettingDefault
commitIntervalMs100ms
j: trueWait for journal sync

5. Understanding Document-Level Locking

AspectDetail
GranularityPer-document write conflicts
ReadsLockless under MVCC

6. Using In-Memory Storage Engine

AspectDetail
EditionEnterprise
PersistenceNone; data lost on restart
UseCache layer, ephemeral analytics

7. Configuring Storage Engine Options

storage:
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 8
      journalCompressor: zstd
    collectionConfig:
      blockCompressor: zstd

8. Monitoring Storage Metrics

SourceDetail
dbStats / collStatsSizes, counts, index sizes
wiredTiger.cachePages evicted, dirty bytes

9. Understanding Checkpoints

AspectDetail
FrequencyEvery 60s or 2GB log
EffectPersists snapshot to disk; recovery point

10. Optimizing Storage Performance

PracticeDetail
XFS over ext4Recommended FS
NVMe SSDFor low-latency workloads
Disable THPTransparent Huge Pages off
Separate journalOn dedicated device for write-heavy