index

package
v0.0.0-...-09229a4 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Btree

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

func (*Btree) Close

func (bt *Btree) Close() error

func (*Btree) Delete

func (bt *Btree) Delete(key []byte) (*disk.LogRecordPos, bool)

func (*Btree) Get

func (bt *Btree) Get(key []byte) *disk.LogRecordPos

func (*Btree) Iterator

func (bt *Btree) Iterator(reverse bool) Iterator

func (*Btree) Put

func (bt *Btree) Put(key []byte, pos *disk.LogRecordPos) *disk.LogRecordPos

func (*Btree) Size

func (bt *Btree) Size() int

type BtreeIterator

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

BtreeIterator btree 迭代器(对整个内存索引的操作)

func (*BtreeIterator) Close

func (bi *BtreeIterator) Close()

func (*BtreeIterator) Key

func (bi *BtreeIterator) Key() []byte

func (*BtreeIterator) Next

func (bi *BtreeIterator) Next()

func (*BtreeIterator) Rewind

func (bi *BtreeIterator) Rewind()

func (*BtreeIterator) Seek

func (bi *BtreeIterator) Seek(key []byte)

func (*BtreeIterator) Valid

func (bi *BtreeIterator) Valid() bool

func (*BtreeIterator) Value

func (bi *BtreeIterator) Value() *disk.LogRecordPos

type Indexer

type Indexer interface {
	// Put 写入内存索引,在磁盘上保存之后得到的位置记录在内存中
	Put(key []byte, pos *disk.LogRecordPos) *disk.LogRecordPos

	// Get 获取key在磁盘中的位置,这个位置用来读取真正的value
	Get(key []byte) *disk.LogRecordPos

	// Delete 删除内存索引, 在磁盘上删除之后,内存中的索引也要删除
	Delete(key []byte) (*disk.LogRecordPos, bool)

	// Size 索引中的数据量
	Size() int

	// Iterator 索引迭代器
	Iterator(reverse bool) Iterator

	// Close 关闭索引
	Close() error
}

Indexer 索引接口, 内存中索引的定义

type Item

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

func (*Item) Less

func (item *Item) Less(bi btree.Item) bool

type Iterator

type Iterator interface {
	// Rewind 重新回到迭代器的起点
	Rewind()

	// Seek 根据传入的 key 查找到第一个大于(或小于)等于的目标 key,根据从这个 key 开始遍历
	Seek(key []byte)

	// Next 跳转到下一个 key
	Next()

	// Valid 是否有效,即是否已经遍历完了所有的 key,用于退出遍历
	Valid() bool

	// Key 当前遍历位置的
	Key() []byte

	// Value 当前遍历位置的 Value 数据
	Value() *disk.LogRecordPos

	// Close 关闭迭代器,释放相应资源
	Close()
}

Iterator 索引的迭代器

Jump to

Keyboard shortcuts

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