Documentation ¶
Index ¶
- Constants
- func AllPostingsKey() (name, value string)
- func ExpandPostings(p Postings) (res []uint64, err error)
- func ReadOffsetTable(bs ByteSlice, off uint64, f func([]string, uint64, int) error) error
- type ByteSlice
- type Decoder
- type FileWriter
- func (fw *FileWriter) AddPadding(size int) error
- func (fw *FileWriter) Close() error
- func (fw *FileWriter) Flush() error
- func (fw *FileWriter) Pos() uint64
- func (fw *FileWriter) Remove() error
- func (fw *FileWriter) Write(bufs ...[]byte) error
- func (fw *FileWriter) WriteAt(buf []byte, pos uint64) error
- type ListPostings
- type MemPostings
- func (p *MemPostings) Add(id uint64, lset labels.Labels)
- func (p *MemPostings) All() Postings
- func (p *MemPostings) Delete(deleted map[uint64]struct{})
- func (p *MemPostings) EnsureOrder()
- func (p *MemPostings) Get(name, value string) Postings
- func (p *MemPostings) Iter(f func(labels.Label, Postings) error) error
- func (p *MemPostings) LabelNames() []string
- func (p *MemPostings) LabelValues(name string) []string
- func (p *MemPostings) SortedKeys() []labels.Label
- func (p *MemPostings) Stats(label string) *PostingsStats
- type Postings
- type PostingsStats
- type Range
- type Reader
- func (r *Reader) Close() error
- func (r *Reader) LabelNames() ([]string, error)
- func (r *Reader) LabelValues(name string) ([]string, error)
- func (r *Reader) Postings(name string, values ...string) (Postings, error)
- func (r *Reader) PostingsRanges() (map[labels.Label]Range, error)
- func (r *Reader) Series(id uint64, lbls *labels.Labels, chks *[]chunks.Meta) error
- func (r *Reader) Size() int64
- func (r *Reader) SortedLabelValues(name string) ([]string, error)
- func (r *Reader) SortedPostings(p Postings) Postings
- func (r *Reader) SymbolTableSize() uint64
- func (r *Reader) Symbols() StringIter
- func (r *Reader) Version() int
- type Stat
- type StringIter
- type Symbols
- type TOC
- type Writer
Constants ¶
const ( // MagicIndex 4 bytes at the head of an index file. MagicIndex = 0xBAAAD700 // HeaderLen represents number of bytes reserved of index for header. HeaderLen = 5 // FormatV1 represents 1 version of index. FormatV1 = 1 // FormatV2 represents 2 version of index. FormatV2 = 2 )
Variables ¶
This section is empty.
Functions ¶
func AllPostingsKey ¶
func AllPostingsKey() (name, value string)
AllPostingsKey returns the label key that is used to store the postings list of all existing IDs.
func ExpandPostings ¶
ExpandPostings returns the postings expanded as a slice.
Types ¶
type Decoder ¶
Decoder provides decoding methods for the v1 and v2 index file format.
It currently does not contain decoding methods for all entry types but can be extended by them if there's demand.
type FileWriter ¶ added in v2.25.0
type FileWriter struct {
// contains filtered or unexported fields
}
func NewFileWriter ¶ added in v2.25.0
func NewFileWriter(name string) (*FileWriter, error)
func (*FileWriter) AddPadding ¶ added in v2.25.0
func (fw *FileWriter) AddPadding(size int) error
AddPadding adds zero byte padding until the file size is a multiple size.
func (*FileWriter) Close ¶ added in v2.25.0
func (fw *FileWriter) Close() error
func (*FileWriter) Flush ¶ added in v2.25.0
func (fw *FileWriter) Flush() error
func (*FileWriter) Pos ¶ added in v2.25.0
func (fw *FileWriter) Pos() uint64
func (*FileWriter) Remove ¶ added in v2.25.0
func (fw *FileWriter) Remove() error
func (*FileWriter) Write ¶ added in v2.25.0
func (fw *FileWriter) Write(bufs ...[]byte) error
type ListPostings ¶
type ListPostings struct {
// contains filtered or unexported fields
}
ListPostings implements the Postings interface over a plain list.
func (*ListPostings) At ¶
func (it *ListPostings) At() uint64
func (*ListPostings) Err ¶
func (it *ListPostings) Err() error
func (*ListPostings) Next ¶
func (it *ListPostings) Next() bool
func (*ListPostings) Seek ¶
func (it *ListPostings) Seek(x uint64) bool
type MemPostings ¶
type MemPostings struct {
// contains filtered or unexported fields
}
MemPostings holds postings list for series ID per label pair. They may be written to out of order. ensureOrder() must be called once before any reads are done. This allows for quick unordered batch fills on startup.
func NewMemPostings ¶
func NewMemPostings() *MemPostings
NewMemPostings returns a memPostings that's ready for reads and writes.
func NewUnorderedMemPostings ¶
func NewUnorderedMemPostings() *MemPostings
NewUnorderedMemPostings returns a memPostings that is not safe to be read from until ensureOrder was called once.
func (*MemPostings) Add ¶
func (p *MemPostings) Add(id uint64, lset labels.Labels)
Add a label set to the postings index.
func (*MemPostings) All ¶
func (p *MemPostings) All() Postings
All returns a postings list over all documents ever added.
func (*MemPostings) Delete ¶
func (p *MemPostings) Delete(deleted map[uint64]struct{})
Delete removes all ids in the given map from the postings lists.
func (*MemPostings) EnsureOrder ¶
func (p *MemPostings) EnsureOrder()
EnsureOrder ensures that all postings lists are sorted. After it returns all further calls to add and addFor will insert new IDs in a sorted manner.
func (*MemPostings) Get ¶
func (p *MemPostings) Get(name, value string) Postings
Get returns a postings list for the given label pair.
func (*MemPostings) Iter ¶
Iter calls f for each postings list. It aborts if f returns an error and returns it.
func (*MemPostings) LabelNames ¶ added in v2.25.0
func (p *MemPostings) LabelNames() []string
LabelNames returns all the unique label names.
func (*MemPostings) LabelValues ¶ added in v2.25.0
func (p *MemPostings) LabelValues(name string) []string
LabelValues returns label values for the given name.
func (*MemPostings) SortedKeys ¶
func (p *MemPostings) SortedKeys() []labels.Label
SortedKeys returns a list of sorted label keys of the postings.
func (*MemPostings) Stats ¶ added in v2.25.0
func (p *MemPostings) Stats(label string) *PostingsStats
Stats calculates the cardinality statistics from postings.
type Postings ¶
type Postings interface { // Next advances the iterator and returns true if another value was found. Next() bool // Seek advances the iterator to value v or greater and returns // true if a value was found. Seek(v uint64) bool // At returns the value at the current iterator position. At() uint64 // Err returns the last error of the iterator. Err() error }
Postings provides iterative access over a postings list.
func EmptyPostings ¶
func EmptyPostings() Postings
EmptyPostings returns a postings list that's always empty. NOTE: Returning EmptyPostings sentinel when index.Postings struct has no postings is recommended. It triggers optimized flow in other functions like Intersect, Without etc.
func ErrPostings ¶
ErrPostings returns new postings that immediately error.
func NewListPostings ¶
type PostingsStats ¶ added in v2.25.0
type PostingsStats struct { CardinalityMetricsStats []Stat CardinalityLabelStats []Stat LabelValueStats []Stat LabelValuePairsStats []Stat NumLabelPairs int }
PostingsStats contains cardinality based statistics for postings.
type Reader ¶
type Reader struct {
// contains filtered or unexported fields
}
func NewFileReader ¶
NewFileReader returns a new index reader against the given index file.
func NewReader ¶
NewReader returns a new index reader on the given byte slice. It automatically handles different format versions.
func (*Reader) LabelNames ¶
LabelNames returns all the unique label names present in the index.
func (*Reader) LabelValues ¶
LabelValues returns value tuples that exist for the given label name. It is not safe to use the return value beyond the lifetime of the byte slice passed into the Reader.
func (*Reader) PostingsRanges ¶
PostingsRanges returns a new map of byte range in the underlying index file for all postings lists.
func (*Reader) Series ¶
Series reads the series with the given ID and writes its labels and chunks into lbls and chks.
func (*Reader) SortedLabelValues ¶ added in v2.25.0
SortedLabelValues returns value tuples that exist for the given label name. It is not safe to use the return value beyond the lifetime of the byte slice passed into the Reader.
func (*Reader) SortedPostings ¶
SortedPostings returns the given postings list reordered so that the backing series are sorted.
func (*Reader) SymbolTableSize ¶
SymbolTableSize returns the symbol table size in bytes.
func (*Reader) Symbols ¶
func (r *Reader) Symbols() StringIter
Symbols returns an iterator over the symbols that exist within the index.
type StringIter ¶ added in v2.25.0
type StringIter interface { // Next advances the iterator and returns true if another value was found. Next() bool // At returns the value at the current iterator position. At() string // Err returns the last error of the iterator. Err() error }
StringIter iterates over a sorted list of strings.
func NewStringListIter ¶ added in v2.25.0
func NewStringListIter(s []string) StringIter
NewStringListIter returns a StringIter for the given sorted list of strings.
type Symbols ¶ added in v2.25.0
type Symbols struct {
// contains filtered or unexported fields
}
func NewSymbols ¶ added in v2.25.0
NewSymbols returns a Symbols object for symbol lookups.
func (Symbols) Iter ¶ added in v2.25.0
func (s Symbols) Iter() StringIter
func (Symbols) ReverseLookup ¶ added in v2.25.0
type TOC ¶
type TOC struct { Symbols uint64 Series uint64 LabelIndices uint64 LabelIndicesTable uint64 Postings uint64 PostingsTable uint64 }
TOC represents index Table Of Content that states where each section of index starts.
func NewTOCFromByteSlice ¶
NewTOCFromByteSlice return parsed TOC from given index byte slice.
type Writer ¶
type Writer struct { Version int // contains filtered or unexported fields }
Writer implements the IndexWriter interface for the standard serialization format.
func NewWriter ¶
NewWriter returns a new Writer to the given filename. It serializes data in format version 2.