- Fix an edge case causing recovery to fail.
- Improve error reporting.
- Fix compilation for 32-bit OS.
- Memory-mapped file access can now be disabled by setting
Options.FileSystem
tofs.OS
.
- The default file system implementation is changed to
fs.OSMMap
.
- Write-ahead log doesn't rely on wall-clock time anymore. It prevents potential race conditions during compaction and recovery.
- Fix recovery writing extra delete records.
- Improve Go 1.14 compatibility (remove "unsafe" usage).
- Replace the unstructured data file for storing key-value pairs with a write-ahead log.
- In the event of a crash or a power loss the database is automatically recovered.
- Optional background compaction allows reclaiming disk space occupied by overwritten or deleted keys.
- Fix disk space overhead when storing small keys and values.
- Fix slice bounds out of range error mapping files on Windows.
- Race condition could lead to data corruption.
- Fix panic when accessing closed database.
- Return error opening invalid database.
- ~2x write performance improvement on non-Windows.
- Windows support (@mattn).
- Improve freelist performance.