Releases: dgraph-io/badger
BadgerDB v2.0.1-rc1
New APIs
-
badger.Options
-
Badger.TableInfo
- EstimatedSz (f46f8ea)
Features
- Introduce in-memory mode in badger. (#1113)
Fixed
- Limit manifest's change set size. (#1119)
- Cast idx to uint32 to fix compilation on i386. (#1118)
- Fix request increment ref bug. (#1121)
- Fix windows dataloss issue. (#1134)
- Fix VerifyValueChecksum checks. (#1138)
- Fix encryption in stream writer. (#1146)
- Fix segmentation fault in vlog.Read. (header.Decode) (#1150)
- Fix merge iterator duplicates issue. (#1157)
Performance
BadgerDB v2.0.0
New features
The main new features are:
- Data cache: The data cache can be configured using the WithMaxCacheSize to specify how much data should be cached in memory.
- Data compression: Compression can be configured using the WithCompression option.
- Encryption at rest: Badger can be configured to encrypt data on disk using the WithEncryptionKey and WithEncryptionKeyRotationDuration options.
Others
There are various bug fixes, optimizations, and new options. See the CHANGELOG for details.
BadgerDB v1.6.0
BadgerDB has changed a lot over the latest year so we released a new version with a brand new API.
Read our CHANGELOG for more details on the exact changes, or the announcement post on our blog.
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 boilerplate related to badger.Options.
Breaking API changes
The following changes might impact your code:
badger.ManagedDB
has been deprecated and merged intobadger.DB
. You can still use badger.OpenManaged.- The
badger.Options.DoNotCompact
option has been removed. badger.DefaultOptions
andbadger.LSMOnlyOptions
are now functions that receive a directory path as a parameter.- All the methods on
badger.Txn
with name starting inSetWith
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.
BadgerDB v2.0.0-rc1
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 intobadger.DB
. You can still use badger.OpenManaged.- The
badger.Options.DoNotCompact
option has been removed. badger.DefaultOptions
andbadger.LSMOnlyOptions
are now functions that receive a directory path as a parameter.- All the methods on
badger.Txn
with name starting inSetWith
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.
BadgerDB v1.5.5
Adding support for Go modules
This will probably be the last v1.x version released, as we're also releasing v2.0.0 very soon.
BadgerDB v1.5.3
Bug Fixes:
- Fix a panic caused due to item.vptr not copying over vs.Value, when looking
for a move key.
BadgerDB v1.5.2
Bug Fixes:
- Fix the way move key gets generated.
- If a transaction has unclosed, or multiple iterators running simultaneously,
throw a panic. Every iterator must be properly closed. At any point in time,
only one iterator per transaction can be running. This is to avoid bugs using the
transaction data structure which is thread unsafe.
Warning: This change might cause panics in user code. Fix is to properly
close your iterators, and only have one running at a time per transaction.
BadgerDB v1.5.1
Badger v1.5.0 Release
- Introduce
NumVersionsToKeep
option. This option is used to discard many
versions of the same key, which saves space. - Add a new
SetWithDiscard
method, which would indicate that all the older
versions of the key are now invalid. Those versions would be discarded during
compactions. - Value log GC moves are now bound to another keyspace to ensure latest versions
of data are always at the top in LSM tree. - Introduce
ValueLogMaxEntries
to restrict the number of key-value pairs per
value log file. This helps bound the time it takes to garbage collect one
file.
BadgerDB v1.4.0
- Make mmap-ing of value log optional.
- Run GC multiple times, based on recorded discard statistics.
- Add MergeOperator.
- Force compact L0 on close (#439).
- Add truncate option to warn about data loss (#452).
- Discard key versions during compaction (#464).
- Introduce new
LSMOnlyOptions
, to make Badger act like a typical LSM based DB.
Bug fix:
- [Temporary] Check max version across all tables in Get (would be removed in v2.0).
- Update commit and read ts while loading from backup.
- Ensure all transaction entries are part of the same value log file.
- On commit, run unlock callbacks before doing writes (#413).
- Wait for goroutines to finish before closing iterators (#421).