tbtree

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Copyright 2021 CodeNotary, Inc. All rights reserved.

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.

Copyright 2021 CodeNotary, Inc. All rights reserved.

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.

Copyright 2021 CodeNotary, Inc. All rights reserved.

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.

Copyright 2021 CodeNotary, Inc. All rights reserved.

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.

Copyright 2021 CodeNotary, Inc. All rights reserved.

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.

Index

Constants

View Source
const (
	InnerNodeType = iota
	LeafNodeType
)
View Source
const (
	MetaVersion     = "VERSION"
	MetaMaxNodeSize = "MAX_NODE_SIZE"
)
View Source
const DefaultCacheSize = 100_000
View Source
const DefaultCompactionThld = 2
View Source
const DefaultFileMode = os.FileMode(0755)
View Source
const DefaultFileSize = 1 << 26 // 64Mb
View Source
const DefaultFlushThld = 100_000
View Source
const DefaultMaxActiveSnapshots = 100
View Source
const DefaultMaxKeyLen = 1024
View Source
const DefaultMaxNodeSize = 4096
View Source
const DefaultRenewSnapRootAfter = time.Duration(1000) * time.Millisecond
View Source
const MinCacheSize = 1
View Source
const MinNodeSize = 128
View Source
const Version = 1

Variables

View Source
var ErrAlreadyClosed = errors.New("index already closed")
View Source
var ErrCompactAlreadyInProgress = errors.New("compact already in progress")
View Source
var ErrCompactionThresholdNotReached = errors.New("compaction threshold not yet reached")
View Source
var ErrCorruptedCLog = errors.New("commit log is corrupted")
View Source
var ErrCorruptedFile = errors.New("file is corrupted")
View Source
var ErrIllegalArguments = errors.New("illegal arguments")
View Source
var ErrIllegalState = errors.New("illegal state")
View Source
var ErrKeyNotFound = errors.New("key not found")
View Source
var ErrNoMoreEntries = errors.New("no more entries")
View Source
var ErrOffsetOutOfRange = errors.New("offset out of range")
View Source
var ErrReadersNotClosed = errors.New("readers not closed")
View Source
var ErrReadingFileContent = errors.New("error reading required file content")
View Source
var ErrSnapshotsNotClosed = errors.New("snapshots not closed")
View Source
var ErrorMaxKVLenExceeded = errors.New("max kv length exceeded")
View Source
var ErrorPathIsNotADirectory = errors.New("path is not a directory")
View Source
var ErrorToManyActiveSnapshots = errors.New("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) 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) 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) WithFlushThld

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

func (*Options) WithLog added in v0.9.2

func (opts *Options) WithLog(log logger.Logger) *Options

func (*Options) WithMaxActiveSnapshots

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

func (*Options) WithMaxKeyLen added in v0.9.1

func (opts *Options) WithMaxKeyLen(maxKeyLen int) *Options

func (*Options) WithMaxNodeSize

func (opts *Options) WithMaxNodeSize(maxNodeSize 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) WithSynced

func (opts *Options) WithSynced(synced bool) *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 uint64, hc uint64, err error)

func (*Reader) ReadAsBefore added in v1.0.0

func (r *Reader) ReadAsBefore(beforeTs uint64) (key []byte, ts uint64, err error)

func (*Reader) Reset added in v1.0.0

func (r *Reader) Reset() error

type ReaderSpec

type ReaderSpec struct {
	SeekKey       []byte
	Prefix        []byte
	InclusiveSeek bool
	DescOrder     bool
}

type Snapshot

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

func (*Snapshot) Close

func (s *Snapshot) Close() 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, 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) Ts

func (s *Snapshot) Ts() uint64

func (*Snapshot) WriteTo

func (s *Snapshot) WriteTo(nw, hw io.Writer, writeOpts *WriteOpts) (nOff 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, smaller bool) (bool, error)

func (*TBtree) Flush

func (t *TBtree) Flush() (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, err 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
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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