impl

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2026 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NumLevels           = 7
	L0CompactionTrigger = 4
	L0SlowDownTrigger   = 8
	L0StopWritesTrigger = 12
)
View Source
const (
	TagComparator     = 1
	TagLogNumber      = 2
	TagNextFileNumber = 3
	TagLastSequence   = 4
	TagCompactPointer = 5
	TagDeletedFile    = 6
	TagNewFile        = 7

	TagPrevLogNumber = 9
)

Variables

This section is empty.

Functions

func BuildTable

func BuildTable(dbname string, env db.Env, iter db.Iterator,
	icmp *InternalKeyComparator, options *db.Options, filterPolicy db.FilterPolicy, meta *FileMetaData,
) error

func CurrentFileName

func CurrentFileName(dbname string) string

func DescriptorFileName

func DescriptorFileName(dbname string, num FileNumber) string

func ExtractUserKey

func ExtractUserKey(internalKey []byte) []byte

func InfoLogFileName

func InfoLogFileName(dbname string) string

func LockFileName

func LockFileName(dbname string) string

func LogFileName

func LogFileName(dbname string, num FileNumber) string

func Open

func Open(userOpt *db.Options, dbname string) (db.DB, error)

func PackSequenceAndType

func PackSequenceAndType(seq SequenceNumber, t ValueType) uint64

func ParseFileName

func ParseFileName(filename string) (FileType, FileNumber, bool)

func SSTTableFileName

func SSTTableFileName(dbname string, num FileNumber) string

func SetCurrentFile

func SetCurrentFile(env db.Env, dbname string, num FileNumber) error

func TableFileName

func TableFileName(dbname string, num FileNumber) string

func TempFileName

func TempFileName(dbname string, num FileNumber) string

Types

type CompactPointer

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

type Compaction

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

func (*Compaction) IsTrivial

func (c *Compaction) IsTrivial() bool

func (*Compaction) NewInputIterator

func (c *Compaction) NewInputIterator() (db.Iterator, error)

func (*Compaction) Release

func (c *Compaction) Release()

type DeletedFile

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

type FileMetaData

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

type FileNumber

type FileNumber uint64

type FileType

type FileType uint8
const (
	FileTypeLog FileType = iota
	FileTypeLock
	FileTypeTable
	FileTypeDescriptor
	FileTypeCurrent
	FileTypeTemp
	FileTypeInfoLog
)

type InternalKey

type InternalKey []byte

InternalKey: [user key] [seq(56b) | type(8b)] Sorted by user key ASC, trailer DESC (newer first).

type InternalKeyComparator

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

func (*InternalKeyComparator) Compare

func (ic *InternalKeyComparator) Compare(a []byte, b []byte) int

func (*InternalKeyComparator) FindShortSuccessor

func (ic *InternalKeyComparator) FindShortSuccessor(key *[]byte)

func (*InternalKeyComparator) FindShortestSeparator

func (ic *InternalKeyComparator) FindShortestSeparator(start *[]byte, limit []byte)

func (*InternalKeyComparator) Name

func (*InternalKeyComparator) Name() string

type Level

type Level int

type LookupKey

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

func (LookupKey) Key

func (k LookupKey) Key() []byte

func (*LookupKey) Set

func (k *LookupKey) Set(userKey []byte, seq SequenceNumber)

func (LookupKey) UserKey

func (k LookupKey) UserKey() []byte

type MemTable

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

func NewMemTable

func NewMemTable(icmp *InternalKeyComparator) *MemTable

func (*MemTable) Add

func (mt *MemTable) Add(seq SequenceNumber, valueType ValueType, key, value []byte)

func (*MemTable) ApproximateMemoryUsage

func (mt *MemTable) ApproximateMemoryUsage() int

func (*MemTable) Delete

func (mt *MemTable) Delete(seq SequenceNumber, key []byte)

func (*MemTable) Get

func (mt *MemTable) Get(lookupKey *LookupKey) (value []byte, deleted, exist bool)

func (*MemTable) Iterator

func (mt *MemTable) Iterator() *MemTableIterator

func (*MemTable) Put

func (mt *MemTable) Put(seq SequenceNumber, key, value []byte)

type MemTableIterator

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

func (*MemTableIterator) Close

func (it *MemTableIterator) Close() error

func (*MemTableIterator) Error

func (it *MemTableIterator) Error() error

func (*MemTableIterator) Key

func (it *MemTableIterator) Key() []byte

func (*MemTableIterator) Next

func (it *MemTableIterator) Next()

func (*MemTableIterator) Prev

func (it *MemTableIterator) Prev()

func (*MemTableIterator) Seek

func (it *MemTableIterator) Seek(key []byte)

func (*MemTableIterator) SeekToFirst

func (it *MemTableIterator) SeekToFirst()

func (*MemTableIterator) SeekToLast

func (it *MemTableIterator) SeekToLast()

func (*MemTableIterator) Valid

func (it *MemTableIterator) Valid() bool

func (*MemTableIterator) Value

func (it *MemTableIterator) Value() []byte

type ParsedInternalKey

type ParsedInternalKey struct {
	UserKey  []byte
	Sequence SequenceNumber
	Type     ValueType
}

func ParseInternalKey

func ParseInternalKey(ikey []byte) (*ParsedInternalKey, error)

type SequenceNumber

type SequenceNumber uint64
const MaxSequenceNumber SequenceNumber = (1 << 56) - 1

type Snapshot

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

func (*Snapshot) Release

func (s *Snapshot) Release()

type SnapshotList

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

func NewSnapshotList

func NewSnapshotList() *SnapshotList

func (*SnapshotList) Empty

func (l *SnapshotList) Empty() bool

func (*SnapshotList) NewSnapshot

func (l *SnapshotList) NewSnapshot(seq SequenceNumber, db *dbImpl) *Snapshot

func (*SnapshotList) Oldest

func (l *SnapshotList) Oldest() *Snapshot

type TableCache

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

func NewTableCache

func NewTableCache(dbname string, env db.Env, size int, cmp db.Comparator, filter db.FilterPolicy,
	bcache *table.BlockCache, paranoidChecks bool) *TableCache

func (*TableCache) Close

func (tc *TableCache) Close()

func (*TableCache) Evict

func (tc *TableCache) Evict(num FileNumber)

func (*TableCache) Get

func (tc *TableCache) Get(num FileNumber, size uint64, key []byte, handleFn func(k, v []byte), verifyChecksum, bypassCache bool) error

func (*TableCache) NewIterator

func (tc *TableCache) NewIterator(num FileNumber, size uint64, verifyChecksum, bypassCache bool) (db.Iterator, error)

type ValueType

type ValueType byte
const (
	TypeDeletion ValueType = 0
	TypeValue    ValueType = 1

	// TypeValue is the highest type value, so a seek key lands at the newest version.
	TypeForSeek = TypeValue
)

type Version

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

func (*Version) AddIterators

func (v *Version) AddIterators(iters *[]db.Iterator, verifyChecksum, bypassCache bool) error

func (*Version) Get

func (v *Version) Get(lkey *LookupKey, verifyChecksum, bypassCache bool) ([]byte, error)

func (*Version) Ref

func (v *Version) Ref()

func (*Version) Unref

func (v *Version) Unref()

type VersionBuilder

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

func (*VersionBuilder) Apply

func (b *VersionBuilder) Apply(edit *VersionEdit)

func (*VersionBuilder) MaybeAddFile

func (b *VersionBuilder) MaybeAddFile(v *Version, level Level, f *FileMetaData)

func (*VersionBuilder) SaveTo

func (b *VersionBuilder) SaveTo(v *Version)

type VersionEdit

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

func (*VersionEdit) AddFile

func (ve *VersionEdit) AddFile(level Level, number FileNumber, size uint64, smallest, largest []byte)

func (*VersionEdit) Append

func (ve *VersionEdit) Append(dst []byte) []byte

func (*VersionEdit) DecodeFrom

func (ve *VersionEdit) DecodeFrom(src []byte) error

func (*VersionEdit) RemoveFile

func (ve *VersionEdit) RemoveFile(number FileNumber, level Level)

func (*VersionEdit) SetCompactPointer

func (ve *VersionEdit) SetCompactPointer(level Level, internalKey []byte)

func (*VersionEdit) SetComparator

func (ve *VersionEdit) SetComparator(comparator string)

func (*VersionEdit) SetLastSequence

func (ve *VersionEdit) SetLastSequence(lastSequence SequenceNumber)

func (*VersionEdit) SetLogNumber

func (ve *VersionEdit) SetLogNumber(logNumber FileNumber)

func (*VersionEdit) SetNextFileNumber

func (ve *VersionEdit) SetNextFileNumber(nextFileNumber FileNumber)

func (*VersionEdit) SetPrevLogNumber

func (ve *VersionEdit) SetPrevLogNumber(prevLogNumber FileNumber)

type VersionSet

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

func NewVersionSet

func NewVersionSet(dbname string, icmp *InternalKeyComparator, env db.Env, tableCache *TableCache,
	paranoidChecks bool) *VersionSet

func (*VersionSet) AppendVersion

func (vs *VersionSet) AppendVersion(v *Version)

func (*VersionSet) Close

func (vs *VersionSet) Close()

func (*VersionSet) Finalize

func (vs *VersionSet) Finalize(v *Version)

func (*VersionSet) GetLastSequence

func (vs *VersionSet) GetLastSequence() SequenceNumber

func (*VersionSet) LiveFiles

func (vs *VersionSet) LiveFiles() map[FileNumber]struct{}

func (*VersionSet) LogAndApply

func (vs *VersionSet) LogAndApply(edit *VersionEdit, dbMu *sync.Mutex) error

func (*VersionSet) MakeFileNumberUsed

func (vs *VersionSet) MakeFileNumberUsed(number FileNumber)

func (*VersionSet) NeedsCompaction

func (vs *VersionSet) NeedsCompaction() bool

func (*VersionSet) NewBuilder

func (vs *VersionSet) NewBuilder(v *Version) *VersionBuilder

func (*VersionSet) NewFileNumber

func (vs *VersionSet) NewFileNumber() FileNumber

func (*VersionSet) NewVersion

func (vs *VersionSet) NewVersion() *Version

func (*VersionSet) NumLevelFiles

func (vs *VersionSet) NumLevelFiles(level Level) int

func (*VersionSet) PickCompaction

func (vs *VersionSet) PickCompaction() *Compaction

func (*VersionSet) Recover

func (vs *VersionSet) Recover() error

func (*VersionSet) SetLastSequence

func (vs *VersionSet) SetLastSequence(seq SequenceNumber)

type WriteBatchImpl

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

func NewWriteBatch

func NewWriteBatch() *WriteBatchImpl

func WriteBatchFromContents

func WriteBatchFromContents(c []byte) *WriteBatchImpl

func (*WriteBatchImpl) Append

func (b *WriteBatchImpl) Append(src *WriteBatchImpl)

func (*WriteBatchImpl) Delete

func (b *WriteBatchImpl) Delete(key []byte)

func (*WriteBatchImpl) InsertIntoMemTable

func (b *WriteBatchImpl) InsertIntoMemTable(mt *MemTable) error

func (*WriteBatchImpl) Put

func (b *WriteBatchImpl) Put(key, value []byte)

func (*WriteBatchImpl) Size

func (b *WriteBatchImpl) Size() int

Jump to

Keyboard shortcuts

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