bitpage

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2024 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BitrieVersion    = 1
	BitrieHeaderSize = 18
	BitrieKeySize    = 1
	BitrieIndexSize  = 4
	PruneKeySize     = 2
	PruneKeyValFlag  = 1
)
View Source
const (
	InternalKindKeyPrune      uint8 = 1
	InternalKindHasValue      uint8 = 2
	InternalKindHasChildrenL1 uint8 = 4
	InternalKindHasChildrenL2 uint8 = 8
	InternalKindHasChildrenL3 uint8 = 16

	KindChildrenL1Step uint32 = 65536
	KindChildrenL2Step uint32 = 16777216
)

Variables

View Source
var (
	ErrPageNotFound    = errors.New("page not exist")
	ErrPageSplitted    = errors.New("page splitted")
	ErrPageNotSplitted = errors.New("page not splitted")
	ErrPageFlushState  = errors.New("page flush state err")
	ErrTableFull       = errors.New("allocation failed because table is full")
	ErrTableSize       = errors.New("tbl size is not large enough to hold the header")
	ErrTableOpenType   = errors.New("tbl open type not support")
)

Functions

This section is empty.

Types

type Bitpage

type Bitpage struct {
	// contains filtered or unexported fields
}

func Open

func Open(dirname string, opts *options.BitpageOptions) (b *Bitpage, err error)

func (*Bitpage) CheckFreePages

func (b *Bitpage) CheckFreePages(except PageNum) bool

func (*Bitpage) Checkpoint

func (b *Bitpage) Checkpoint(fs vfs.FS, dstDir string) (err error)

func (*Bitpage) Close

func (b *Bitpage) Close() (err error)

func (*Bitpage) FreePage

func (b *Bitpage) FreePage(pn PageNum, checked bool) error

func (*Bitpage) Get

func (b *Bitpage) Get(pn PageNum, key []byte, khash uint32) ([]byte, bool, func(), base.InternalKeyKind)

func (*Bitpage) GetCacheMetrics

func (b *Bitpage) GetCacheMetrics() string

func (*Bitpage) GetNeedFlushPageNums

func (b *Bitpage) GetNeedFlushPageNums(isForce bool) []PageNum

func (*Bitpage) GetPage

func (b *Bitpage) GetPage(pn PageNum) *page

func (*Bitpage) GetPageCount

func (b *Bitpage) GetPageCount() int

func (*Bitpage) GetPageDebugInfo

func (b *Bitpage) GetPageDebugInfo(pn PageNum) PageDebugInfo

func (*Bitpage) GetPageStMutableDeleteKeyRate added in v1.2.0

func (b *Bitpage) GetPageStMutableDeleteKeyRate(pn PageNum) float64

func (*Bitpage) GetPageWriter

func (b *Bitpage) GetPageWriter(pn PageNum, sentinel []byte) *PageWriter

func (*Bitpage) ManualPageFlush added in v1.1.0

func (b *Bitpage) ManualPageFlush(pn PageNum) error

func (*Bitpage) MarkFreePages

func (b *Bitpage) MarkFreePages(pns []PageNum)

func (*Bitpage) NewIter

func (b *Bitpage) NewIter(pn PageNum, o *iterOptions) *PageIterator

func (*Bitpage) NewPage

func (b *Bitpage) NewPage() (PageNum, error)

func (*Bitpage) PageFlush

func (b *Bitpage) PageFlush(pn PageNum, sentinel []byte, logTag string) error

func (*Bitpage) PageSplitEnd

func (b *Bitpage) PageSplitEnd(pn PageNum, sps []*SplitPageInfo, retErr error)

func (*Bitpage) PageSplitStart

func (b *Bitpage) PageSplitStart(pn PageNum, log string) (sps []*SplitPageInfo, err error)

func (*Bitpage) PageSplitted

func (b *Bitpage) PageSplitted(pn PageNum) bool

func (*Bitpage) PageSplitted2

func (b *Bitpage) PageSplitted2(pn PageNum) bool

func (*Bitpage) ResetStats

func (b *Bitpage) ResetStats()

func (*Bitpage) SetPage

func (b *Bitpage) SetPage(pn PageNum, p *page)

func (*Bitpage) Stats

func (b *Bitpage) Stats() *Stats

func (*Bitpage) StatsToString

func (b *Bitpage) StatsToString() string

type Bitrie

type Bitrie struct {
	// contains filtered or unexported fields
}

func NewBitrie

func NewBitrie() *Bitrie

func (*Bitrie) Add

func (bt *Bitrie) Add(key []byte, value []byte)

func (*Bitrie) AnalyzeBytes

func (bt *Bitrie) AnalyzeBytes() []byte

func (*Bitrie) Finish

func (bt *Bitrie) Finish()

func (*Bitrie) Get

func (bt *Bitrie) Get(key []byte) ([]byte, bool)

func (*Bitrie) InitWriter

func (bt *Bitrie) InitWriter()

func (*Bitrie) Serialize

func (bt *Bitrie) Serialize(
	tblalloc func(uint32) uint32,
	tblbytes func(uint32, uint32) []byte,
	tblsize func() uint32) bool

func (*Bitrie) SetReader

func (bt *Bitrie) SetReader(d []byte, offset uint32) bool

func (*Bitrie) Size

func (bt *Bitrie) Size() uint32

func (*Bitrie) ToBytes

func (bt *Bitrie) ToBytes() []byte

type FS

type FS vfs.FS

type File

type File vfs.File

type FileNum

type FileNum uint32

func (FileNum) String

func (fn FileNum) String() string

type FileType

type FileType int
type Header struct {
	// contains filtered or unexported fields
}

type IterValidityState

type IterValidityState int8
const (
	IterExhausted IterValidityState = iota
	IterValid
)

type PageDebugInfo

type PageDebugInfo struct {
	Ct         int64
	Ut         int64
	SplitState uint8
}

type PageIterator

type PageIterator struct {
	// contains filtered or unexported fields
}

func (*PageIterator) Close

func (i *PageIterator) Close() error

func (*PageIterator) Error

func (i *PageIterator) Error() error

func (*PageIterator) First

func (i *PageIterator) First() (*internalKey, []byte)

func (*PageIterator) Last

func (i *PageIterator) Last() (*internalKey, []byte)

func (*PageIterator) Next

func (i *PageIterator) Next() (*internalKey, []byte)

func (*PageIterator) Prev

func (i *PageIterator) Prev() (*internalKey, []byte)

func (*PageIterator) SeekGE

func (i *PageIterator) SeekGE(key []byte) (*internalKey, []byte)

func (*PageIterator) SeekLT

func (i *PageIterator) SeekLT(key []byte) (*internalKey, []byte)

func (*PageIterator) SeekPrefixGE

func (i *PageIterator) SeekPrefixGE(prefix, key []byte, trySeekUsingNext bool) (*internalKey, []byte)

func (*PageIterator) SetBounds

func (i *PageIterator) SetBounds(lower, upper []byte)

func (*PageIterator) String

func (i *PageIterator) String() string

type PageNum

type PageNum uint32

func (PageNum) String

func (fn PageNum) String() string

func (PageNum) ToByte

func (fn PageNum) ToByte() []byte

type PageWriter

type PageWriter struct {
	Sentinel []byte
	// contains filtered or unexported fields
}

func (*PageWriter) FlushFinish

func (w *PageWriter) FlushFinish() error

func (*PageWriter) MaybePageFlush

func (w *PageWriter) MaybePageFlush(size uint64) bool

func (*PageWriter) Set

func (w *PageWriter) Set(key internalKey, value []byte) error

func (*PageWriter) UpdateMetaTimestamp

func (w *PageWriter) UpdateMetaTimestamp()

type SplitPageInfo

type SplitPageInfo struct {
	Pn       PageNum
	IsEmpty  bool
	Sentinel []byte
}

type Stats

type Stats struct {
	Size int64
}

func (*Stats) Reset

func (s *Stats) Reset()

func (*Stats) String

func (s *Stats) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL