1
0
mirror of https://github.com/nxshock/zkv.git synced 2024-11-27 11:21:02 +05:00
zkv/options.go

41 lines
818 B
Go
Raw Normal View History

package zkv
2022-12-03 12:55:42 +05:00
import "github.com/klauspost/compress/zstd"
type Options struct {
2022-12-03 12:55:42 +05:00
// Maximum number of concurrent reads
2022-12-03 20:59:17 +05:00
MaxParallelReads int
2022-12-03 12:55:42 +05:00
// Compression level
CompressionLevel zstd.EncoderLevel
2022-12-03 20:59:17 +05:00
// Memory write buffer size in bytes
MemoryBufferSize int
2022-12-10 21:34:16 +05:00
// Disk write buffer size in bytes
DiskBufferSize int
2022-12-10 21:39:24 +05:00
// Use index file
useIndexFile bool
}
2022-12-03 12:55:42 +05:00
func (o *Options) setDefaults() {
o.useIndexFile = true // TODO: implement database search without index
if o.MaxParallelReads == 0 {
o.MaxParallelReads = defaultOptions.MaxParallelReads
}
2022-12-03 12:55:42 +05:00
if o.CompressionLevel == 0 {
o.CompressionLevel = defaultOptions.CompressionLevel
}
2022-12-10 21:39:24 +05:00
if o.MemoryBufferSize == 0 {
o.MemoryBufferSize = defaultOptions.MemoryBufferSize
}
if o.DiskBufferSize == 0 {
o.DiskBufferSize = defaultOptions.DiskBufferSize
}
}