Files
zapdb/options/options.go
Ibrahim JarifandGitHub 978228d6a4 Support compression in Badger (#1013)
This commit adds support for compression in badger. Two compression
algorithms - Snappy and ZSTD are supported for now. The compression algorithm information
is stored in the manifest file. We compress blocks (typically of size 4KB) stored in the SST.

The compression algorithm can be specified via the CompressionType option to badger.
2019-09-30 17:00:22 +05:30

58 lines
1.9 KiB
Go

/*
* Copyright 2017 Dgraph Labs, Inc. and Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package options
// FileLoadingMode specifies how data in LSM table files and value log files should
// be loaded.
type FileLoadingMode int
const (
// FileIO indicates that files must be loaded using standard I/O
FileIO FileLoadingMode = iota
// LoadToRAM indicates that file must be loaded into RAM
LoadToRAM
// MemoryMap indicates that that the file must be memory-mapped
MemoryMap
)
// ChecksumVerificationMode tells when should DB verify checksum for SSTable blocks.
type ChecksumVerificationMode int
const (
// NoVerification indicates DB should not verify checksum for SSTable blocks.
NoVerification ChecksumVerificationMode = iota
// OnTableRead indicates checksum should be verified while opening SSTtable.
OnTableRead
// OnBlockRead indicates checksum should be verified on every SSTable block read.
OnBlockRead
// OnTableAndBlockRead indicates checksum should be verified
// on SSTable opening and on every block read.
OnTableAndBlockRead
)
// CompressionType specifies how a block should be compressed.
type CompressionType uint32
const (
// None mode indicates that a block is not compressed.
None CompressionType = 0
// Snappy mode indicates that a block is compressed using Snappy algorithm.
Snappy CompressionType = 1
// ZSTD mode indicates that a block is compressed using ZSTD algorithm.
ZSTD CompressionType = 2
)