badger v2.0.0 Release Notes
Release Date: 2019-06-20 // almost 5 years ago-
๐ New APIs
badger.DB
- NewWriteBatchAt (7f43769)
- CacheMetrics (b9056f1)
badger.Options
- WithMaxCacheSize (b9056f1)
- WithEventLogging (75c6a44)
- WithBlockSize (1439463)
- WithBloomFalsePositive (1439463)
- WithKeepL0InMemory (ee70ff2)
- WithVerifyValueChecksum (ee70ff2)
- WithCompression (5f3b061)
- WithEncryptionKey (a425b0e)
- WithEncryptionKeyRotationDuration (a425b0e)
- WithChecksumVerificationMode (7b4083d)
๐ Features
- Data cache to speed up lookups and iterations. (#1066)
- Data compression. (#1013)
- Data encryption-at-rest. (#1042)
๐ Fixed
- ๐ Fix deadlock when flushing discard stats. (#976)
- ๐ Set move key's expiresAt for keys with TTL. (#1006)
- ๐ Fix unsafe usage in Decode. (#1097)
- ๐ Fix race condition on db.orc.nextTxnTs. (#1101)
- ๐ Fix level 0 GC dataloss bug. (#1090)
- ๐ Fix deadlock in discard stats. (#1070)
- ๐ Support checksum verification for values read from vlog. (#1052)
- Store entire L0 in memory. (#963)
- ๐ Fix table.Smallest/Biggest and iterator Prefix bug. (#997)
- ๐ Use standard proto functions for Marshal/Unmarshal and Size. (#994)
- ๐ Fix boundaries on GC batch size. (#987)
- ๐ VlogSize to store correct directory name to expvar.Map. (#956)
- ๐ Fix transaction too big issue in restore. (#957)
- ๐ Fix race condition in updateDiscardStats. (#973)
- Cast results of len to uint32 to fix compilation in i386 arch. (#961)
- Making the stream writer APIs goroutine-safe. (#959)
- ๐ Fix prefix bug in key iterator and allow all versions. (#950)
- โฌ๏ธ Drop discard stats if we can't unmarshal it. (#936)
- ๐ Fix race condition in flushDiscardStats function. (#921)
- Ensure rewrite in vlog is within transactional limits. (#911)
- ๐ Fix discard stats moved by GC bug. (#929)
- ๐ Fix busy-wait loop in Watermark. (#920)
๐ Performance
- ๐ Introduce fast merge iterator. (#1080)
- Binary search based table picker. (#983)
- Flush vlog buffer if it grows beyond threshold. (#1067)
- Introduce StreamDone in Stream Writer. (#1061)
- ๐ Performance Improvements to block iterator. (#977)
- ๐ Prevent unnecessary safecopy in iterator parseKV. (#971)
- ๐ Use pointers instead of binary encoding. (#965)
- Reuse block iterator inside table iterator. (#972)
- ๐ [breaking/format] Remove vlen from entry header. (#945)
- Replace FarmHash with AESHash for Oracle conflicts. (#952)
- โก๏ธ [breaking/format] Optimize Bloom filters. (#940)
- [breaking/format] Use varint for header encoding (without header length). (#935)
- ๐ Change file picking strategy in compaction. (#894)
- [breaking/format] Block level changes. (#880)
- [breaking/format] Add key-offset index to the end of SST table. (#881)