Releases: hypermodeinc/badger
BadgerDB v1.6.1-rc1
New APIs
- Badger.DB
- NewWriteBatchAt (#948)
- Badger.Options
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)
BadgerDB v2.0.2
Fixed
- Cast sz to uint32 to fix compilation on 32 bit. (#1175)
- Fix checkOverlap in compaction. (#1166)
- Avoid sync in inmemory mode. (#1190)
- Support disabling the cache completely. (#1185)
- Add support for caching bloomfilters. (#1204)
- Fix int overflow for 32bit. (#1216)
- Remove the 'this entry should've caught' log from value.go. (#1170)
- Rework concurrency semantics of valueLog.maxFid. (#1187)
Performance
BadgerDB v2.0.2-rc1
Fixed
- Cast sz to uint32 to fix compilation on 32 bit. (#1175)
- Fix checkOverlap in compaction. (#1166)
- Avoid sync in inmemory mode. (#1190)
- Support disabling the cache completely. (#1185)
- Add support for caching bloomfilters. (#1204)
- Fix int overflow for 32bit. (#1216)
- Remove the 'this entry should've caught' log from value.go. (#1170)
- Rework concurrency semantics of valueLog.maxFid. (#1187)
Performance
BadgerDB v2.0.1
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.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.