All Versions
42
Latest Version
Avg Release Cycle
55 days
Latest Release
478 days ago

Changelog History
Page 3

  • v2.0.0-rc4

    October 26, 2019
  • v2.0.0-rc3

    August 09, 2019
  • v2.0.0-rc2

    June 25, 2019
  • v2.0.0-rc.2

    June 20, 2019
  • v2.0.0-rc1 Changes

    June 20, 2019

    ๐Ÿš€ BadgerDB has changed a lot over the latest year so we released a new version with a brand new API.

    โฌ†๏ธ BadgerDB v2.0.0 corresponds to the current status of master as June 20th, so if you're using latest you should not have any issues upgrading.

    Read our CHANGELOG for more details on the exact changes.

    ๐Ÿ†• New features

    The main new features are:

    • The Stream framework has been migrated from Dgraph into BadgerDB.
    • A new StreamWriter was added for concurrent writes for sorted streams.
    • You can now subscribe to changes in a DB with the DB.Subscribe method.
    • ๐Ÿ— A new builder API has been added to reduce the boiler plate related to badger.Options.

    ๐Ÿ’ฅ Breaking API changes

    The following changes might impact your code:

    • ๐Ÿ”€ badger.ManagedDB has been deprecated and merged into badger.DB. You can still use badger.OpenManaged.
    • ๐Ÿšš The badger.Options.DoNotCompact option has been removed.
    • 0๏ธโƒฃ badger.DefaultOptions and badger.LSMOnlyOptions are now functions that receive a directory path as a parameter.
    • ๐Ÿ— All the methods on badger.Txn with name starting in SetWith have been deprecated and replaced with a builder API for type badger.Entry.
    • badger.Item.Value now receives a function that returns an error.
    • badger.Txn.Commit doesn't receive any params anymore.
    • badger.DB.Tables now accepts a boolean to decide whether keys should be counted.

    Others

    Many new commands and flags have been added to the badger CLI tool, read the CHANGELOG for more details.

  • v1.6.2 Changes

    September 11, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix Sequence generates duplicate values (#1281)
    • Ensure bitValuePointer flag is cleared for LSM entry values written to LSM (#1313)
    • ๐Ÿšš Confirm badgerMove entry required before rewrite (#1302)
    • โฌ‡๏ธ Drop move keys when its key prefix is dropped (#1331)
    • Compaction: Expired keys and delete markers are never purged (#1354)
    • โช Restore: Account for value size as well (#1358)
    • GC: Consider size of value while rewriting (#1357)
    • Rework DB.DropPrefix (#1381)
    • โšก๏ธ Update head while replaying value log (#1372)
    • โœ‚ Remove vlog file if bootstrap, syncDir or mmap fails (#1434)
    • Levels: Compaction incorrectly drops some delete markers (#1422)
    • ๐Ÿ›  Fix(replay) - Update head for LSM entries also (#1456)
    • ๐Ÿ›  Fix(Backup/Restore): Keep all versions (#1462)
    • ๐Ÿ›  Fix build on Plan 9 (#1451)
  • v1.6.1 Changes

    March 26, 2020

    ๐Ÿ†• New APIs

    • Badger.DB
      • NewWriteBatchAt (#948)
    • Badger.Options
      • WithEventLogging (#1035)
      • WithVerifyValueChecksum (#1052)
      • WithBypassLockGuard (#1243)

    ๐Ÿ”‹ Features

    • ๐Ÿ‘Œ Support checksum verification for values read from vlog (#1052)
    • โž• Add EventLogging option (#1035)
    • ๐Ÿ‘Œ Support WriteBatch API in managed mode (#948)
    • โž• Add support for watching nil prefix in Subscribe API (#1246)

    ๐Ÿ›  Fixed

    • ๐ŸŽ‰ Initialize vlog before starting compactions in db.Open (#1226)
    • ๐Ÿ›  Fix int overflow for 32bit (#1216)
    • โœ‚ Remove the 'this entry should've caught' log from value.go (#1170)
    • ๐Ÿ›  Fix merge iterator duplicates issue (#1157)
    • ๐Ÿ›  Fix segmentation fault in vlog.Read (header.Decode) (#1150)
    • ๐Ÿ›  Fix VerifyValueChecksum checks (#1138)
    • ๐Ÿ›  Fix windows dataloss issue (#1134)
    • ๐Ÿ›  Fix request increment ref bug (#1121)
    • Limit manifest's change set size (#1119)
    • ๐Ÿ›  Fix deadlock in discard stats (#1070)
    • ๐Ÿ”’ Acquire lock before unmapping vlog files (#1050)
    • ๐Ÿšš Set move key's expiresAt for keys with TTL (#1006)
    • ๐Ÿ›  Fix deadlock when flushing discard stats. (#976)
    • ๐Ÿ›  Fix table.Smallest/Biggest and iterator Prefix bug (#997)
    • ๐Ÿ›  Fix boundaries on GC batch size (#987)
    • ๐Ÿ”’ Lock log file before munmap (#949)
    • ๐Ÿ”Š 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)
    • โฌ‡๏ธ Drop discard stats if we can't unmarshal it (#936)
    • Open all vlog files in RDWR mode (#923)
    • ๐Ÿ›  Fix race condition in flushDiscardStats function (#921)
    • Ensure rewrite in vlog is within transactional limits (#911)
    • ๐Ÿ›  Fix prefix bug in key iterator and allow all versions (#950)
    • ๐Ÿ›  Fix discard stats moved by GC bug (#929)

    ๐ŸŽ Performance

    • ๐Ÿ‘‰ Use fastRand instead of locked-rand in skiplist (#1173)
    • ๐Ÿ›  Fix checkOverlap in compaction (#1166)
    • โšก๏ธ Optimize createTable in stream_writer.go (#1132)
    • โž• Add capacity to slice creation when capacity is known (#1103)
    • ๐Ÿ”€ Introduce fast merge iterator (#1080)
    • Introduce StreamDone in Stream Writer (#1061)
    • Flush vlog buffer if it grows beyond threshold (#1067)
    • Binary search based table picker (#983)
    • Making the stream writer APIs goroutine-safe (#959)
    • Replace FarmHash with AESHash for Oracle conflicts (#952)
    • ๐Ÿ”„ Change file picking strategy in compaction (#894)
    • ๐Ÿ‘‰ Use trie for prefix matching (#851)
    • ๐Ÿ›  Fix busy-wait loop in Watermark (#920)
  • v1.6.1-rc1 Changes

    March 24, 2020

    ๐Ÿ†• New APIs

    • Badger.DB
      • NewWriteBatchAt (#948)
    • Badger.Options
      • WithEventLogging (#1035)
      • WithVerifyValueChecksum (#1052)
      • WithBypassLockGuard (#1243)

    ๐Ÿ”‹ Features

    • ๐Ÿ‘Œ Support checksum verification for values read from vlog (#1052)
    • โž• Add EventLogging option (#1035)
    • ๐Ÿ‘Œ Support WriteBatch API in managed mode (#948)
    • โž• Add support for watching nil prefix in Subscribe API (#1246)

    ๐Ÿ›  Fixed

    • ๐ŸŽ‰ Initialize vlog before starting compactions in db.Open (#1226)
    • ๐Ÿ›  Fix int overflow for 32bit (#1216)
    • โœ‚ Remove the 'this entry should've caught' log from value.go (#1170)
    • ๐Ÿ›  Fix merge iterator duplicates issue (#1157)
    • ๐Ÿ›  Fix segmentation fault in vlog.Read (header.Decode) (#1150)
    • ๐Ÿ›  Fix VerifyValueChecksum checks (#1138)
    • ๐Ÿ›  Fix windows dataloss issue (#1134)
    • ๐Ÿ›  Fix request increment ref bug (#1121)
    • Limit manifest's change set size (#1119)
    • ๐Ÿ›  Fix deadlock in discard stats (#1070)
    • ๐Ÿ”’ Acquire lock before unmapping vlog files (#1050)
    • ๐Ÿšš Set move key's expiresAt for keys with TTL (#1006)
    • ๐Ÿ›  Fix deadlock when flushing discard stats. (#976)
    • ๐Ÿ›  Fix table.Smallest/Biggest and iterator Prefix bug (#997)
    • ๐Ÿ›  Fix boundaries on GC batch size (#987)
    • ๐Ÿ”’ Lock log file before munmap (#949)
    • ๐Ÿ”Š 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)
    • โฌ‡๏ธ Drop discard stats if we can't unmarshal it (#936)
    • Open all vlog files in RDWR mode (#923)
    • ๐Ÿ›  Fix race condition in flushDiscardStats function (#921)
    • Ensure rewrite in vlog is within transactional limits (#911)
    • ๐Ÿ›  Fix prefix bug in key iterator and allow all versions (#950)
    • ๐Ÿ›  Fix discard stats moved by GC bug (#929)

    ๐ŸŽ Performance

    • ๐Ÿ‘‰ Use fastRand instead of locked-rand in skiplist (#1173)
    • ๐Ÿ›  Fix checkOverlap in compaction (#1166)
    • โšก๏ธ Optimize createTable in stream_writer.go (#1132)
    • โž• Add capacity to slice creation when capacity is known (#1103)
    • ๐Ÿ”€ Introduce fast merge iterator
    • Introduce StreamDone in Stream Writer (#1061)
    • Flush vlog buffer if it grows beyond threshold (#1067)
    • Binary search based table picker (#983)
    • Making the stream writer APIs goroutine-safe (#959)
    • Replace FarmHash with AESHash for Oracle conflicts (#952)
    • ๐Ÿ”„ Change file picking strategy in compaction (#894)
    • ๐Ÿ‘‰ Use trie for prefix matching (#851)
    • ๐Ÿ›  Fix busy-wait loop in Watermark (#920)
  • v1.6.0 Changes

    July 03, 2019

    ๐Ÿš€ This is a release including almost 200 commits, so expect many changes - some of them not backward compatible.

    Regarding backward compatibility in Badger versions, you might be interested on reading [VERSIONING.md](VERSIONING.md).

    Note: The hashes in parentheses correspond to the commits that impacted the given feature.

    ๐Ÿ†• New APIs

    • badger.DB

      • DropPrefix (291295e)
      • Flatten (7e41bba)
      • KeySplits (4751ef1)
      • MaxBatchCount (b65e2a3)
      • MaxBatchSize (b65e2a3)
      • PrintKeyValueHistogram (fd59907)
      • Subscribe (26128a7)
      • Sync (851e462)
    • 0๏ธโƒฃ badger.DefaultOptions() and badger.LSMOnlyOptions() (91ce687)

      • badger.Options.WithX methods
    • badger.Entry (e9447c9)

      • NewEntry
      • WithMeta
      • WithDiscard
      • WithTTL
    • badger.Item

      • KeySize (fd59907)
      • ValueSize (5242a99)
    • badger.IteratorOptions

      • PickTable (7d46029, 49a49e3)
      • Prefix (7d46029)
    • badger.Logger (fbb2778)

    • badger.Options

      • CompactL0OnClose (7e41bba)
      • Logger (3f66663)
      • LogRotatesToFlush (2237832)
    • badger.Stream (14cbd89, 3258067)

    • badger.StreamWriter (7116e16)

    • badger.TableInfo.KeyCount (fd59907)

    • badger.TableManifest (2017987)

    • badger.Tx.NewKeyIterator (49a49e3)

    • badger.WriteBatch (6daccf9, 7e78e80)

    Modified APIs

    ๐Ÿ’ฅ Breaking changes:

    • 0๏ธโƒฃ badger.DefaultOptions and badger.LSMOnlyOptions are now functions rather than variables (91ce687)
    • badger.Item.Value now receives a function that returns an error (439fd46)
    • badger.Txn.Commit doesn't receive any params now (6daccf9)
    • badger.DB.Tables now receives a boolean (76b5341)

    Not breaking changes:

    • badger.LSMOptions changed values (799c33f)
    • badger.DB.NewIterator now allows multiple iterators per RO txn (41d9656)
    • 0๏ธโƒฃ badger.Options.TableLoadingMode's new default is options.MemoryMap (6b97bac)

    โœ‚ Removed APIs

    • badger.ManagedDB (d22c0e8)
    • badger.Options.DoNotCompact (7e41bba)
    • badger.Txn.SetWithX (e9447c9)

    Tools:

    • badger bank disect (13db058)
    • โœ… badger bank test (13db058) --mmap (03870e3)
    • badger fill (7e41bba)
    • badger flatten (7e41bba)
    • badger info --histogram (fd59907) --history --lookup --show-keys --show-meta --with-prefix (09e9b63) --show-internal (fb2eed9)
    • badger benchmark read (239041e)
    • badger benchmark write (6d3b67d)
  • v1.6.0-rc1

    June 27, 2019