Documentation ¶
Index ¶
- Constants
- Variables
- func CheckValueValidByKeySetBithash(v []byte) bool
- func CorruptionErrorf(format string, args ...interface{}) error
- func EncodeInternalValue(value []byte, seqNum uint64, kind InternalKeyKind) ([]byte, func())
- func FmtDuration(d time.Duration) string
- func GetBitowerIndex(i int) int
- func GetFilePathBase(path string) string
- func InternalCompare(userCmp Compare, a, b InternalKey) int
- func MakeBitablepath(dir string, i int) string
- func MakeBithashpath(dir string, i int) string
- func MakeBitpagepath(dir string, i int) string
- func MakeBitreeFilepath(dir string, i int) string
- func MakeFilename(fileType FileType, fileNum FileNum) string
- func MakeFilepath(fs vfs.FS, dirname string, fileType FileType, fileNum FileNum) string
- func MakeWalpath(dir string, i int) string
- func ParseFilename(fs vfs.FS, filename string) (fileType FileType, fileNum FileNum, ok bool)
- func SharedPrefixLen(a, b []byte) int
- type AbbreviatedKey
- type AppendValueMerger
- type ArchiveCleaner
- type Cleaner
- type Compare
- type Comparer
- type DFLOption
- type DeleteCleaner
- type DeletionFileLimiter
- type Equal
- type FileNum
- type FileType
- type FormatBytes
- type FormatKey
- type FormatValue
- type InternalIterator
- type InternalKey
- func DecodeInternalKey(encodedKey []byte) InternalKey
- func MakeInternalKey(userKey []byte, seqNum uint64, kind InternalKeyKind) InternalKey
- func MakeInternalKey2(userKey []byte, trailer uint64) InternalKey
- func MakeInternalSetKey(userKey []byte) InternalKey
- func MakeSearchKey(userKey []byte) InternalKey
- func (k InternalKey) Clone() InternalKey
- func (k InternalKey) Encode(buf []byte)
- func (k InternalKey) EncodeTrailer() [8]byte
- func (k InternalKey) Kind() InternalKeyKind
- func (k InternalKey) Pretty(f FormatKey) fmt.Formatter
- func (k InternalKey) SeqNum() uint64
- func (k *InternalKey) SetKind(kind InternalKeyKind)
- func (k *InternalKey) SetSeqNum(seqNum uint64)
- func (k InternalKey) Size() int
- func (k InternalKey) String() string
- func (k InternalKey) Valid() bool
- func (k InternalKey) Visible(snapshot uint64) bool
- type InternalKeyKind
- type InternalValue
- type Logger
- type Merge
- type Merger
- type NeedsFileContents
- type Separator
- type Split
- type Successor
- type ValueMerger
Constants ¶
View Source
const ( BitreeFilePrefix = "bitree." BitpageFilePrefix = "bitpage." BithashPathPrefix = "bithash." BitablePathPrefix = "bitable." WalPathPrefix = "wal." )
Variables ¶
View Source
var DefaultComparer = &Comparer{ Compare: bytes.Compare, Equal: bytes.Equal, AbbreviatedKey: func(key []byte) uint64 { if len(key) >= 8 { return binary.BigEndian.Uint64(key) } var v uint64 for _, b := range key { v <<= 8 v |= uint64(b) } return v << uint(8*(8-len(key))) }, FormatKey: DefaultFormatter, Separator: func(dst, a, b []byte) []byte { i, n := SharedPrefixLen(a, b), len(dst) dst = append(dst, a...) min := len(a) if min > len(b) { min = len(b) } if i >= min { return dst } if a[i] >= b[i] { return dst } if i < len(b)-1 || a[i]+1 < b[i] { i += n dst[i]++ return dst[:i+1] } i += n + 1 for ; i < len(dst); i++ { if dst[i] != 0xff { dst[i]++ return dst[:i+1] } } return dst }, Successor: func(dst, a []byte) (ret []byte) { for i := 0; i < len(a); i++ { if a[i] != 0xff { dst = append(dst, a[:i+1]...) dst[len(dst)-1]++ return dst } } return append(dst, a...) }, Name: "bitalosdb.BytewiseComparator", }
View Source
var DefaultFormatter = func(key []byte) fmt.Formatter { return FormatBytes(key) }
View Source
var DefaultLogger = defaultLogger{/* contains filtered or unexported fields */}
View Source
var DefaultMerger = &Merger{ Merge: func(key, value []byte) (ValueMerger, error) { res := &AppendValueMerger{} res.buf = append(res.buf, value...) return res, nil }, Name: "bitalosdb.concatenate", }
View Source
var ErrCorruption = errors.New("bitalosdb: corruption")
View Source
var ErrNotFound = errors.New("bitalosdb: not found")
Functions ¶
func CorruptionErrorf ¶
func EncodeInternalValue ¶
func EncodeInternalValue(value []byte, seqNum uint64, kind InternalKeyKind) ([]byte, func())
func FmtDuration ¶
func GetBitowerIndex ¶ added in v1.1.0
func GetFilePathBase ¶
func InternalCompare ¶
func InternalCompare(userCmp Compare, a, b InternalKey) int
func MakeBitablepath ¶ added in v1.1.0
func MakeBithashpath ¶ added in v1.1.0
func MakeBitpagepath ¶ added in v1.1.0
func MakeBitreeFilepath ¶ added in v1.1.0
func MakeFilename ¶
func MakeFilepath ¶
func MakeWalpath ¶ added in v1.1.0
func ParseFilename ¶
func SharedPrefixLen ¶
Types ¶
type AbbreviatedKey ¶
type AppendValueMerger ¶
type AppendValueMerger struct {
// contains filtered or unexported fields
}
func (*AppendValueMerger) MergeNewer ¶
func (a *AppendValueMerger) MergeNewer(value []byte) error
func (*AppendValueMerger) MergeOlder ¶
func (a *AppendValueMerger) MergeOlder(value []byte) error
type ArchiveCleaner ¶
type ArchiveCleaner struct{}
func (ArchiveCleaner) String ¶
func (ArchiveCleaner) String() string
type Comparer ¶
type Comparer struct { Compare Compare Equal Equal AbbreviatedKey AbbreviatedKey FormatKey FormatKey FormatValue FormatValue Separator Separator Split Split Successor Successor Name string }
type DeleteCleaner ¶
type DeleteCleaner struct{}
func (DeleteCleaner) String ¶
func (DeleteCleaner) String() string
type DeletionFileLimiter ¶
type DeletionFileLimiter struct {
// contains filtered or unexported fields
}
func NewDeletionFileLimiter ¶
func NewDeletionFileLimiter(opts *DFLOption) *DeletionFileLimiter
func (*DeletionFileLimiter) AddFile ¶
func (d *DeletionFileLimiter) AddFile(file string)
func (*DeletionFileLimiter) AddFiles ¶
func (d *DeletionFileLimiter) AddFiles(files []string)
func (*DeletionFileLimiter) Close ¶
func (d *DeletionFileLimiter) Close()
func (*DeletionFileLimiter) Flush ¶
func (d *DeletionFileLimiter) Flush()
func (*DeletionFileLimiter) Run ¶
func (d *DeletionFileLimiter) Run(opts *DFLOption)
type FormatBytes ¶
type FormatBytes []byte
type FormatValue ¶
type InternalIterator ¶
type InternalIterator interface { SeekGE(key []byte) (*InternalKey, []byte) SeekPrefixGE(prefix, key []byte, trySeekUsingNext bool) (*InternalKey, []byte) SeekLT(key []byte) (*InternalKey, []byte) First() (*InternalKey, []byte) Last() (*InternalKey, []byte) Next() (*InternalKey, []byte) Prev() (*InternalKey, []byte) Error() error Close() error SetBounds(lower, upper []byte) fmt.Stringer }
type InternalKey ¶
func DecodeInternalKey ¶
func DecodeInternalKey(encodedKey []byte) InternalKey
func MakeInternalKey ¶
func MakeInternalKey(userKey []byte, seqNum uint64, kind InternalKeyKind) InternalKey
func MakeInternalKey2 ¶
func MakeInternalKey2(userKey []byte, trailer uint64) InternalKey
func MakeInternalSetKey ¶
func MakeInternalSetKey(userKey []byte) InternalKey
func MakeSearchKey ¶
func MakeSearchKey(userKey []byte) InternalKey
func (InternalKey) Clone ¶
func (k InternalKey) Clone() InternalKey
func (InternalKey) Encode ¶
func (k InternalKey) Encode(buf []byte)
func (InternalKey) EncodeTrailer ¶
func (k InternalKey) EncodeTrailer() [8]byte
func (InternalKey) Kind ¶
func (k InternalKey) Kind() InternalKeyKind
func (InternalKey) SeqNum ¶
func (k InternalKey) SeqNum() uint64
func (*InternalKey) SetKind ¶
func (k *InternalKey) SetKind(kind InternalKeyKind)
func (*InternalKey) SetSeqNum ¶
func (k *InternalKey) SetSeqNum(seqNum uint64)
func (InternalKey) Size ¶
func (k InternalKey) Size() int
func (InternalKey) String ¶
func (k InternalKey) String() string
func (InternalKey) Valid ¶
func (k InternalKey) Valid() bool
func (InternalKey) Visible ¶
func (k InternalKey) Visible(snapshot uint64) bool
type InternalKeyKind ¶
type InternalKeyKind uint8
const ( InternalKeyKindDelete InternalKeyKind = 0 InternalKeyKindSet InternalKeyKind = 1 InternalKeyKindSetBithash InternalKeyKind = 2 InternalKeyKindLogData InternalKeyKind = 3 InternalKeyKindPrefixDelete InternalKeyKind = 4 InternalKeyKindMax InternalKeyKind = 18 InternalKeyKindInvalid InternalKeyKind = 255 InternalKeySeqNumBatch = uint64(1 << 55) InternalKeySeqNumMax = uint64(1<<56 - 1) )
func (InternalKeyKind) String ¶
func (k InternalKeyKind) String() string
type InternalValue ¶
func DecodeInternalValue ¶
func DecodeInternalValue(encodedValue []byte) InternalValue
func MakeInternalValue ¶
func MakeInternalValue(value []byte, seqNum uint64, kind InternalKeyKind) InternalValue
func (InternalValue) Kind ¶
func (v InternalValue) Kind() InternalKeyKind
func (InternalValue) SeqNum ¶
func (v InternalValue) SeqNum() uint64
func (*InternalValue) SetKind ¶
func (v *InternalValue) SetKind(kind InternalKeyKind)
func (*InternalValue) SetSeqNum ¶
func (v *InternalValue) SetSeqNum(seqNum uint64)
type Logger ¶
type Logger interface { Info(args ...interface{}) Warn(args ...interface{}) Error(args ...interface{}) Cost(arg ...interface{}) func() Infof(format string, args ...interface{}) Warnf(format string, args ...interface{}) Errorf(format string, args ...interface{}) Fatalf(format string, args ...interface{}) }
type Merge ¶
type Merge func(key, value []byte) (ValueMerger, error)
type NeedsFileContents ¶
type NeedsFileContents interface {
// contains filtered or unexported methods
}
Click to show internal directories.
Click to hide internal directories.