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)