disk

package
v0.0.0-...-dc2a067 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2023 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KiB = 1024
	MiB = KiB * 1024
	GiB = MiB * 10240
)
View Source
const (
	INDEX = iota
	DATA
)
View Source
const (
	LogMaxSize = 512 * MiB //100 	KB

	DefaultBlockCacheCapacity = 8 * MiB
)

Variables

View Source
var (
	B  = 1
	KB = 1024 * B
	MB = 1024 * KB
	GB = 1024 * MB
)

Functions

func CloseChain

func CloseChain(fn ...writeClose) error

func Get

func Get() []byte

func LastSequenceFile

func LastSequenceFile(dir string) (string, error)

func NewListPostings

func NewListPostings(chks []TimeChunk) *chunkSet

func NextSequenceFile

func NextSequenceFile(dir string) (string, int, error)

func SequenceFiles

func SequenceFiles(dir string) ([]string, error)

Types

type Builder

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

func NewBuilder

func NewBuilder() *Builder

type ChunkMeta

type ChunkMeta struct {
	Ref        uint64 //Length
	MinT, MaxT int64
	LastLogNum uint64
}

func (ChunkMeta) ChunkEnc

func (c ChunkMeta) ChunkEnc(isTerm bool, cr chunks.ChunkReader) chunks.ChunkEnc

func (ChunkMeta) MaxTime

func (c ChunkMeta) MaxTime() int64

func (ChunkMeta) Meta

func (c ChunkMeta) Meta(ref uint64) ChunkMeta

func (ChunkMeta) MinTime

func (c ChunkMeta) MinTime() int64

func (ChunkMeta) SegmentNum

func (c ChunkMeta) SegmentNum() uint64

type ChunkMetaIndex

type ChunkMetaIndex struct {
	chunks.Chunk
	IterIndex int
}

type DiskLogIterator

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

func (*DiskLogIterator) Next

func (t *DiskLogIterator) Next() bool

func (*DiskLogIterator) Value

func (t *DiskLogIterator) Value() []byte

func (*DiskLogIterator) Write

func (t *DiskLogIterator) Write(w LogWriter) (uint64, error)

type IndexReader

type IndexReader struct {
	MsgTagName string
	// contains filtered or unexported fields
}

func NewIndexReader

func NewIndexReader(dir string, skipListlevel int, bcache, mcache *cache.NamespaceGetter) *IndexReader

缺乏错误处理

func (*IndexReader) ChunkReader

func (r *IndexReader) ChunkReader() chunks.ChunkReader

func (*IndexReader) Close

func (r *IndexReader) Close() error

func (*IndexReader) Iterator

func (r *IndexReader) Iterator() IteratorLabel

func (*IndexReader) MaxDoc

func (r *IndexReader) MaxDoc() float64

func (*IndexReader) Search

func (r *IndexReader) Search(lset []*prompb.LabelMatcher, expr temql.Expr) (posting.Postings, []series.Series)

type IndexW

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

写文件

func CreateIndexFrom

func CreateIndexFrom(dir string) (*IndexW, error)

func (*IndexW) AddSeries

func (tw *IndexW) AddSeries(isSeries bool, lset labels.Labels, chunks ...ChunkMeta) (uint64, error)

func (*IndexW) AppendKey

func (tw *IndexW) AppendKey(key []byte, ref uint64) error

func (*IndexW) Close

func (tw *IndexW) Close() error

func (*IndexW) FinishTag

func (tw *IndexW) FinishTag() error

func (*IndexW) GetSeries

func (tw *IndexW) GetSeries(lset labels.Labels) (uint64, bool)

func (*IndexW) GetValueOffset

func (tw *IndexW) GetValueOffset() uint64

func (*IndexW) SetBaseTimeStamp

func (tw *IndexW) SetBaseTimeStamp(timeStamp int64)

func (*IndexW) SetTagName

func (tw *IndexW) SetTagName(tagName []byte)

func (*IndexW) WriteChunks

func (tw *IndexW) WriteChunks(b [][]byte) (uint64, error)

func (*IndexW) WritePostings

func (tw *IndexW) WritePostings(ref ...[]uint64) (uint64, error)

type IndexWriter

type IndexWriter interface {
	SetTagName([]byte)
	AppendKey([]byte, uint64) error
	Close() error
	FinishTag() error
	AddSeries(bool, labels.Labels, ...ChunkMeta) (uint64, error)
	WritePostings(ref ...[]uint64) (uint64, error)
	WriteChunks([][]byte) (uint64, error)
	GetSeries(labels.Labels) (uint64, bool)
	SetBaseTimeStamp(int64)
}

type IteratorLabel

type IteratorLabel interface {
	iterator.SingleIterator
	Iter() WriterIterator
}

type LogIterator

type LogIterator interface {
	Next() bool
	Write(LogWriter) (uint64, error) // []byte
}

type LogReader

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

func NewLogReader

func NewLogReader(dir string, logOffset []uint64, lcache *cache.NamespaceGetter) *LogReader

func (*LogReader) Close

func (cr *LogReader) Close() error

func (*LogReader) Iterator

func (cr *LogReader) Iterator() LogIterator

func (*LogReader) ReadLog

func (cr *LogReader) ReadLog(logID uint64) []byte

type LogW

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

chunk writer

func CreateLogFrom

func CreateLogFrom(dir string) *LogW

func (*LogW) Close

func (w *LogW) Close() (uint64, error)

func (*LogW) FinishLog

func (w *LogW) FinishLog(length uint64) (uint64, error)

func (*LogW) WriteBytes

func (w *LogW) WriteBytes(b []byte) error

func (*LogW) WriteIndex

func (w *LogW) WriteIndex() error

type LogWriter

type LogWriter interface {
	FinishLog(uint64) (uint64, error)
	WriteBytes([]byte) error
	WriteIndex() error
	Close() (uint64, error)
}

type MergeLabelIterator

type MergeLabelIterator struct {
	MergedIterator
	// contains filtered or unexported fields
}

func NewMergeLabelIterator

func NewMergeLabelIterator(iters ...IteratorLabel) *MergeLabelIterator

func (*MergeLabelIterator) Iters

func (t *MergeLabelIterator) Iters() []WriterIterator

返回同一个label的块

type MergeLogIterator

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

func NewMergeLogIterator

func NewMergeLogIterator(iters ...LogIterator) *MergeLogIterator

func (*MergeLogIterator) Next

func (t *MergeLogIterator) Next() bool

func (*MergeLogIterator) Write

func (t *MergeLogIterator) Write(w LogWriter) (uint64, error)

type MergeWriterIterator

type MergeWriterIterator struct {
	MergedIterator
	// contains filtered or unexported fields
}

func NewMergeWriterIterator

func NewMergeWriterIterator(segmentNum []uint64, baseTime []int64, msgTagName string, iters ...WriterIterator) *MergeWriterIterator

func (*MergeWriterIterator) Write

func (m *MergeWriterIterator) Write(labelName string, w IndexWriter) error

type MergedIterator

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

多路归并排序

func NewMergedIterator

func NewMergedIterator(iters ...iterator.SingleIterator) *MergedIterator

func (*MergedIterator) First

func (m *MergedIterator) First() bool

func (*MergedIterator) Key

func (m *MergedIterator) Key() []byte

func (*MergedIterator) Next

func (m *MergedIterator) Next() bool

func (*MergedIterator) Values

func (m *MergedIterator) Values() [][]byte

type TableOps

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

磁盘数据

func NewTableOps

func NewTableOps() *TableOps

func (*TableOps) CreateIndexFrom

func (d *TableOps) CreateIndexFrom(dir string) (*IndexW, error)

func (*TableOps) CreateIndexReader

func (t *TableOps) CreateIndexReader(dir string, ulid ulid.ULID, skiplistLevel int) *IndexReader

func (*TableOps) CreateLogFrom

func (d *TableOps) CreateLogFrom(dir string) *LogW

func (*TableOps) CreateLogReader

func (t *TableOps) CreateLogReader(dir string, uid ulid.ULID, offset []uint64) *LogReader

func (*TableOps) RemoveIndexReader

func (t *TableOps) RemoveIndexReader(dir string, ulid ulid.ULID) error

type TimeChunk

type TimeChunk struct {
	Lset labels.Labels
	Meta []ChunkMetaIndex
}

TimeChunk 时间段

type WriterIterator

type WriterIterator interface {
	iterator.SingleIterator

	ChunksPosting(w IndexWriter, segmentNum uint64, iterIndex int) ([]TimeChunk, []uint64, error)

	ChunkByte(bool, chunks.Chunk) chunks.ChunkEnc
}

Jump to

Keyboard shortcuts

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