tbtree

package
v1.4.0-RC1 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2022 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InnerNodeType = iota
	LeafNodeType
)
View Source
const (
	MetaVersion      = "VERSION"
	MetaMaxNodeSize  = "MAX_NODE_SIZE"
	MetaMaxKeySize   = "MAX_KEY_SIZE"
	MetaMaxValueSize = "MAX_VALUE_SIZE"
)
View Source
const DefaultCacheSize = 100_000
View Source
const DefaultCleanUpPercentage float32 = 0
View Source
const DefaultCommitLogMaxOpenedFiles = 1
View Source
const DefaultCompactionThld = 2
View Source
const DefaultDelayDuringCompaction = time.Duration(10) * time.Millisecond
View Source
const DefaultFileMode = os.FileMode(0755)
View Source
const DefaultFileSize = 1 << 26 // 64Mb
View Source
const DefaultFlushBufferSize = 4096
View Source
const DefaultFlushThld = 100_000
View Source
const DefaultHistoryLogMaxOpenedFiles = 1
View Source
const DefaultMaxActiveSnapshots = 100
View Source
const DefaultMaxKeySize = 1024
View Source
const DefaultMaxNodeSize = 4096
View Source
const DefaultMaxValueSize = 512
View Source
const DefaultNodesLogMaxOpenedFiles = 10
View Source
const DefaultRenewSnapRootAfter = time.Duration(1000) * time.Millisecond
View Source
const DefaultSyncThld = 1_000_000
View Source
const MinCacheSize = 1
View Source
const Version = 3

Variables

View Source
var ErrAlreadyClosed = errors.New("tbtree: index already closed")
View Source
var ErrCompactAlreadyInProgress = errors.New("tbtree: compact already in progress")
View Source
var ErrCompactionThresholdNotReached = errors.New("tbtree: compaction threshold not yet reached")
View Source
var ErrCorruptedCLog = errors.New("tbtree: commit log is corrupted")
View Source
var ErrCorruptedFile = errors.New("tbtree: file is corrupted")
View Source
var ErrIllegalArguments = fmt.Errorf("tbtree: %w", embedded.ErrIllegalArguments)
View Source
var ErrIllegalState = embedded.ErrIllegalState // TODO: grpc error mapping hardly relies on the actual message, see IllegalStateHandlerInterceptor
View Source
var ErrIncompatibleDataFormat = errors.New("tbtree: incompatible data format")
View Source
var ErrInvalidOptions = fmt.Errorf("%w: invalid options", ErrIllegalArguments)
View Source
var ErrKeyNotFound = fmt.Errorf("tbtree: %w", embedded.ErrKeyNotFound)
View Source
var ErrNoMoreEntries = fmt.Errorf("tbtree: %w", embedded.ErrNoMoreEntries)
View Source
var ErrOffsetOutOfRange = fmt.Errorf("tbtree: %w", embedded.ErrOffsetOutOfRange)
View Source
var ErrReadersNotClosed = errors.New("tbtree: readers not closed")
View Source
var ErrReadingFileContent = errors.New("tbtree: error reading required file content")
View Source
var ErrSnapshotsNotClosed = errors.New("tbtree: snapshots not closed")
View Source
var ErrTargetPathAlreadyExists = errors.New("tbtree: target folder already exists")
View Source
var ErrorMaxKeySizeExceeded = errors.New("tbtree: max key size exceeded")
View Source
var ErrorMaxValueSizeExceeded = errors.New("tbtree: max value size exceeded")
View Source
var ErrorPathIsNotADirectory = errors.New("tbtree: path is not a directory")
View Source
var ErrorToManyActiveSnapshots = errors.New("tbtree: max active snapshots limit reached")

Functions

This section is empty.

Types

type AppFactoryFunc added in v1.0.5

type AppFactoryFunc func(
	rootPath string,
	subPath string,
	opts *multiapp.Options,
) (appendable.Appendable, error)

type HistoryReader added in v0.9.1

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

func (*HistoryReader) Close added in v0.9.1

func (r *HistoryReader) Close() error

func (*HistoryReader) Read added in v0.9.1

func (r *HistoryReader) Read() (tss []uint64, err error)

type HistoryReaderSpec added in v0.9.1

type HistoryReaderSpec struct {
	Key       []byte
	Offset    uint64
	DescOrder bool
	ReadLimit int
}

type KV

type KV struct {
	K []byte
	V []byte
}

type Options

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

func DefaultOptions

func DefaultOptions() *Options

func (*Options) Validate added in v1.2.4

func (opts *Options) Validate() error

func (*Options) WithAppFactory added in v1.0.5

func (opts *Options) WithAppFactory(appFactory AppFactoryFunc) *Options

func (*Options) WithCacheSize

func (opts *Options) WithCacheSize(cacheSize int) *Options

func (*Options) WithCleanupPercentage added in v1.2.3

func (opts *Options) WithCleanupPercentage(cleanupPercentage float32) *Options

func (*Options) WithCommitLogMaxOpenedFiles added in v1.2.3

func (opts *Options) WithCommitLogMaxOpenedFiles(commitLogMaxOpenedFiles int) *Options

func (*Options) WithCompactionThld added in v0.9.2

func (opts *Options) WithCompactionThld(compactionThld int) *Options

func (*Options) WithDelayDuringCompaction added in v0.9.2

func (opts *Options) WithDelayDuringCompaction(delay time.Duration) *Options

func (*Options) WithFileMode

func (opts *Options) WithFileMode(fileMode os.FileMode) *Options

func (*Options) WithFileSize

func (opts *Options) WithFileSize(fileSize int) *Options

func (*Options) WithFlushBufferSize added in v1.2.3

func (opts *Options) WithFlushBufferSize(size int) *Options

func (*Options) WithFlushThld

func (opts *Options) WithFlushThld(flushThld int) *Options

func (*Options) WithHistoryLogMaxOpenedFiles added in v1.2.3

func (opts *Options) WithHistoryLogMaxOpenedFiles(historyLogMaxOpenedFiles int) *Options

func (*Options) WithLogger added in v1.2.4

func (opts *Options) WithLogger(logger logger.Logger) *Options

func (*Options) WithMaxActiveSnapshots

func (opts *Options) WithMaxActiveSnapshots(maxActiveSnapshots int) *Options

func (*Options) WithMaxKeySize added in v1.2.4

func (opts *Options) WithMaxKeySize(maxKeySize int) *Options

func (*Options) WithMaxNodeSize

func (opts *Options) WithMaxNodeSize(maxNodeSize int) *Options

func (*Options) WithMaxValueSize added in v1.2.4

func (opts *Options) WithMaxValueSize(maxValueSize int) *Options

func (*Options) WithNodesLogMaxOpenedFiles added in v1.2.3

func (opts *Options) WithNodesLogMaxOpenedFiles(nodesLogMaxOpenedFiles int) *Options

func (*Options) WithReadOnly

func (opts *Options) WithReadOnly(readOnly bool) *Options

func (*Options) WithRenewSnapRootAfter

func (opts *Options) WithRenewSnapRootAfter(renewSnapRootAfter time.Duration) *Options

func (*Options) WithSyncThld added in v1.2.3

func (opts *Options) WithSyncThld(syncThld int) *Options

type Reader

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

func (*Reader) Close

func (r *Reader) Close() error

func (*Reader) Read

func (r *Reader) Read() (key []byte, value []byte, ts, hc uint64, err error)

func (*Reader) ReadBetween added in v1.3.0

func (r *Reader) ReadBetween(initialTs, finalTs uint64) (key []byte, ts, hc uint64, err error)

func (*Reader) Reset added in v1.0.0

func (r *Reader) Reset() error

type ReaderSpec

type ReaderSpec struct {
	SeekKey       []byte
	EndKey        []byte
	Prefix        []byte
	InclusiveSeek bool
	InclusiveEnd  bool
	DescOrder     bool
	Offset        uint64
}

type Snapshot

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

func (*Snapshot) Close

func (s *Snapshot) Close() error

func (*Snapshot) ExistKeyWith added in v1.2.0

func (s *Snapshot) ExistKeyWith(prefix []byte, neq []byte) (bool, error)

func (*Snapshot) Get

func (s *Snapshot) Get(key []byte) (value []byte, ts uint64, hc uint64, err error)

func (*Snapshot) History added in v0.9.1

func (s *Snapshot) History(key []byte, offset uint64, descOrder bool, limit int) (tss []uint64, hCount uint64, err error)

func (*Snapshot) NewHistoryReader added in v0.9.1

func (s *Snapshot) NewHistoryReader(spec *HistoryReaderSpec) (*HistoryReader, error)

func (*Snapshot) NewReader added in v0.9.1

func (s *Snapshot) NewReader(spec *ReaderSpec) (r *Reader, err error)

func (*Snapshot) Set added in v1.2.0

func (s *Snapshot) Set(key, value []byte) error

func (*Snapshot) Ts

func (s *Snapshot) Ts() uint64

func (*Snapshot) WriteTo

func (s *Snapshot) WriteTo(nw, hw io.Writer, writeOpts *WriteOpts) (rootOffset, minOffset int64, wN, wH int64, err error)

type TBtree

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

TBTree implements a timed-btree

func Open

func Open(path string, opts *Options) (*TBtree, error)

func OpenWith

func OpenWith(path string, nLog, hLog, cLog appendable.Appendable, opts *Options) (*TBtree, error)

func (*TBtree) BulkInsert

func (t *TBtree) BulkInsert(kvs []*KV) error

func (*TBtree) Close

func (t *TBtree) Close() error

func (*TBtree) Compact added in v1.0.5

func (t *TBtree) Compact() (uint64, error)

func (*TBtree) ExistKeyWith added in v1.0.0

func (t *TBtree) ExistKeyWith(prefix []byte, neq []byte) (bool, error)

func (*TBtree) Flush

func (t *TBtree) Flush() (wN, wH int64, err error)

func (*TBtree) FlushWith added in v1.2.3

func (t *TBtree) FlushWith(cleanupPercentage float32, synced bool) (wN, wH int64, err error)

func (*TBtree) Get added in v0.9.0

func (t *TBtree) Get(key []byte) (value []byte, ts uint64, hc uint64, err error)

func (*TBtree) GetOptions added in v0.9.1

func (t *TBtree) GetOptions() *Options

func (*TBtree) History added in v0.9.1

func (t *TBtree) History(key []byte, offset uint64, descOrder bool, limit int) (tss []uint64, hCount uint64, err error)

func (*TBtree) IncreaseTs added in v1.2.3

func (t *TBtree) IncreaseTs(ts uint64) error

func (*TBtree) Insert

func (t *TBtree) Insert(key []byte, value []byte) error

func (*TBtree) Snapshot

func (t *TBtree) Snapshot() (*Snapshot, error)

func (*TBtree) SnapshotCount added in v1.0.5

func (t *TBtree) SnapshotCount() (uint64, error)

SnapshotCount returns the number of stored snapshots Note: snapshotCount(compact(t)) = 1

func (*TBtree) SnapshotSince added in v0.9.0

func (t *TBtree) SnapshotSince(ts uint64) (*Snapshot, error)

func (*TBtree) Sync

func (t *TBtree) Sync() error

func (*TBtree) Ts

func (t *TBtree) Ts() uint64

type WriteOpts

type WriteOpts struct {
	OnlyMutated    bool
	BaseNLogOffset int64
	BaseHLogOffset int64

	MinOffset int64
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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