日志(LOG, Journal)是持久化的核心, 是基础, 是必须.
根据日志的用途, 可以分成两类:
- Write Ahead Log, 将数据持久化在日志中, 日志持久化, 即代表数据持久化. 日志持久化之后, 后期再将数据转存到它们应该放的地方.
- Write Behind Log, Commit Log, 先将数据直接写到它们应该放的地方, 然后通过日志来确认.
WAL 在理想情况下, 单次写的延迟较小, 但有写放大问题, 因为必须有"转存"步骤.
WBL 单次写延迟大, 因为每一次写请求涉及两次持久化, 但没有写放大问题.