What is WiredTiger and how does it ensure checkpoint durability?
It is a noSql storage management platform and uses:
* write-ahead log (journal)
* data managed in RAM
* Periodically synced with filesystem by storage engine
* document level concurrency
multiple clients can modify different documents of a collection in parallel
primarily optimistic locking strategy with retries if necessary (intent locks)
exclusive locks only for some operations (e.g. deletion of a collection)
compression
collections and indexes are compressed
pro: less storage
con: higher CPU usage
What are Snapshots and Checkpoints?
Snapshot: Consistent View of the in memory data (RAM)
Checkpoint: snapshot persisted to disk
What is journaling?
the journal persists all data modifications between the checkpoints
Journal
uses WAL principle
saves data modifications between checkpoints
Journaling
provides more durability in failure situations
basic recovery process
look in the data files to find the identifier of the last checkpoint
search in journal for corresponding log entry
apply changes after this log entry (⇒ all operations after the checkpoint)