badger icon indicating copy to clipboard operation
badger copied to clipboard

Zstd Compression Levels Can't Be Changed Across Different `badger.Open()` Calls

Open jody-frankowski opened this issue 8 months ago • 1 comments

Because the Zstd encoder is initialized only once for the whole program different compression level options (e.g. 1 or 19) aren't respected across different badger instances.

To Reproduce

badgerOptions := badger.DefaultOptions(db1)
badgerOptions = badgerOptions.WithCompression(options.ZSTD)
badgerOptions = badgerOptions.WithZSTDCompressionLevel(1)
db, _ := badger.Open(badgerOptions)

[...]

badgerOptions = badger.DefaultOptions(db2)
badgerOptions = badgerOptions.WithCompression(options.ZSTD)
badgerOptions = badgerOptions.WithZSTDCompressionLevel(19)
db, _ = badger.Open(badgerOptions) // This db instance will also have compression level 1

jody-frankowski avatar Mar 03 '25 18:03 jody-frankowski