Badger Versions Save

Fast key-value DB in Go.

v20.07.0-rc1

3 years ago

Fixed

  • Fix Sequence generates duplicate values (#1281)
  • Fix race condition in DoesNotHave (#1287)
  • Fail fast if cgo is disabled and compression is ZSTD (#1284)
  • Proto: make badger/v2 compatible with v1 (#1293)
  • Proto: Rename dgraph.badger.v2.pb to badgerpb2 (#1314)
  • Handle duplicates in ManagedWriteBatch (#1315)
  • Ensure bitValuePointer flag is cleared for LSM entry values written to LSM (#1313)
  • DropPrefix: Return error on blocked writes (#1329)
  • Confirm badgerMove entry required before rewrite (#1302)
  • Drop move keys when its key prefix is dropped (#1331)
  • Iterator: Always add key to txn.reads (#1328)
  • Restore: Account for value size as well (#1358)
  • Compaction: Expired keys and delete markers are never purged (#1354)
  • GC: Consider size of value while rewriting (#1357)
  • Force KeepL0InMemory to be true when InMemory is true (#1375)
  • Rework DB.DropPrefix (#1381)
  • Update head while replaying value log (#1372)
  • Avoid panic on multiple closer.Signal calls (#1401)
  • Return error if the vlog writes exceeds more than 4GB (#1400)

Performance

  • Clean up transaction oracle as we go (#1275)
  • Use cache for storing block offsets (#1336)

Features

  • Support disabling conflict detection (#1344)
  • Add leveled logging (#1249)
  • Support entry version in Write batch (#1310)
  • Add Write method to batch write (#1321)
  • Support multiple iterators in read-write transactions (#1286)

New APIs

  • Badger.DB
    • NewManagedWriteBatch (#1310)
    • DropPrefix (#1381)
  • Badger.Option
    • WithDetectConflicts (#1344)
    • WithKeepBlockIndicesInCache (#1336)
    • WithKeepBlocksInCache (#1336)
  • Badger.WriteBatch
    • DeleteAt (#1310)
    • SetEntryAt (#1310)
    • Write (#1321)

Changes to Default Options

  • DefaultOptions: Set KeepL0InMemory to false (#1345)
  • Increase default valueThreshold from 32B to 1KB (#1346)

Deprecated

  • Badger.Option
    • WithEventLogging (#1203)

Reverts

This sections lists the changes which were reverted because of non-reproducible crashes.

  • Compress/Encrypt Blocks in the background (#1227)

v2.0.3

4 years ago

Fixed

  • Add support for watching nil prefix in subscribe API (#1246)

Performance

  • Compress/Encrypt Blocks in the background (#1227)
  • Disable cache by default (#1257)

Features

  • Add BypassDirLock option (#1243)
  • Add separate cache for bloomfilters (#1260)

New APIs

  • badger.DB
    • BfCacheMetrics (#1260)
    • DataCacheMetrics (#1260)
  • badger.Options
    • WithBypassLockGuard (#1243)
    • WithLoadBloomsOnOpen (#1260)
    • WithMaxBfCacheSize (#1260)

v2.0.3-rc1

4 years ago

Fixed

  • Add support for watching nil prefix in subscribe API (#1246)

Performance

  • Compress/Encrypt Blocks in the background (#1227)
  • Disable cache by default (#1257)

Features

  • Add BypassDirLock option (#1243)
  • Add separate cache for bloomfilters (#1260)

New APIs

  • badger.DB
    • BfCacheMetrics (#1260)
    • DataCacheMetrics (#1260)
  • badger.Options
    • WithBypassLockGuard (#1243)
    • WithLoadBloomsOnOpen (#1260)
    • WithMaxBfCacheSize (#1260)

v1.6.1

4 years ago

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

4 years ago

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)<Paste>
  • 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)

v2.0.2

4 years ago

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

  • Use fastRand instead of locked-rand in skiplist. (#1173)
  • Improve write stalling on level 0 and 1. (#1186)
  • Disable compression and set ZSTD Compression Level to 1. (#1191)

v2.0.2-rc1

4 years ago

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

  • Use fastRand instead of locked-rand in skiplist. (#1173)
  • Improve write stalling on level 0 and 1. (#1186)
  • Disable compression and set ZSTD Compression Level to 1. (#1191)

v2.0.1

4 years ago

New APIs

  • badger.Options

    • WithInMemory (f5b6321)
    • WithZSTDCompressionLevel (3eb4e72)
  • 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

  • Set level 15 as default compression level in Zstd. (#1111)
  • Optimize createTable in stream_writer.go. (#1132)

v2.0.1-rc1

4 years ago

New APIs

  • badger.Options

    • WithInMemory (f5b6321)
    • WithZSTDCompressionLevel (3eb4e72)
  • 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

  • Set level 15 as default compression level in Zstd. (#1111)
  • Optimize createTable in stream_writer.go. (#1132)

v2.0.0

4 years ago

New features

The main new features are:

Others

There are various bug fixes, optimizations, and new options. See the CHANGELOG for details.