Documentation
¶
Index ¶
- func CheckSection(section *dataobj.Section) bool
- func Iter(ctx context.Context, obj *dataobj.Object) result.Seq[IndexPointer]
- func IterSection(ctx context.Context, section *Section) result.Seq[IndexPointer]
- type Builder
- func (b *Builder) Append(path string, startTs time.Time, endTs time.Time)
- func (b *Builder) EstimatedSize() int
- func (b *Builder) Flush(w dataobj.SectionWriter) (n int64, err error)
- func (b *Builder) Reset()
- func (b *Builder) SetTenant(tenant string)
- func (b *Builder) Tenant() string
- func (b *Builder) Type() dataobj.SectionType
- type Column
- type ColumnStats
- type ColumnType
- type IndexPointer
- type Metrics
- type PageStats
- type RowPredicate
- type RowReader
- type Section
- type Stats
- type TimeRangeRowPredicate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckSection ¶
CheckSection returns true if section is a indexpointers section.
func Iter ¶
Iter iterates over indexpointers in the provided decoder. All indexpointers sections are iterated over in order.
func IterSection ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func NewBuilder ¶
func (*Builder) EstimatedSize ¶
EstimatedSize returns the estimated size of the Pointers section in bytes.
func (*Builder) Flush ¶
func (b *Builder) Flush(w dataobj.SectionWriter) (n int64, err error)
Flush flushes the streams section to the provided writer.
After successful encoding, b is reset to a fresh state and can be reused.
func (*Builder) Reset ¶
func (b *Builder) Reset()
Reset resets all state, allowing IndexPointers to be reused.
func (*Builder) Type ¶
func (b *Builder) Type() dataobj.SectionType
type Column ¶
type Column struct {
Section *Section
Name string
Type ColumnType
// contains filtered or unexported fields
}
A Column represents one of the columns in the indexpointers section. Valid columns can only be retrieved by calling Section.Columns.
Data in columns can be read by using a [Reader].
type ColumnStats ¶
type ColumnStats struct {
Name string
Type string
ValueType string
RowsCount uint64
Compression string
UncompressedSize uint64
CompressedSize uint64
MetadataOffset uint64
MetadataSize uint64
ValuesCount uint64
Cardinality uint64
Pages []PageStats
}
ColumnStats provides statistics about a column in a section.
type ColumnType ¶
type ColumnType int
ColumnType represents the kind of information stored in a Column.
const ( ColumnTypeInvalid ColumnType = iota // ColumnTypeInvalid is an invalid column. ColumnTypePath // ColumnTypePath is a column containing the path to the index object. ColumnTypeMinTimestamp // ColumnTypeMinTimestamp is a column containing the minimum timestamp of the index object. ColumnTypeMaxTimestamp // ColumnTypeMaxTimestamp is a column containing the maximum timestamp of the index object. )
func ParseColumnType ¶
func ParseColumnType(text string) (ColumnType, error)
ParseColumnType parses a ColumnType from a string. The expected string format is same same as the return value of ColumnType.String.
func (ColumnType) String ¶
func (ct ColumnType) String() string
String returns the human-readable name of ct.
type IndexPointer ¶
IndexPointer is a pointer to an index object. It is used to lookup the index object by data object path within a time range.
The path is the data object path, the start and end timestamps are the time range of data stored in the index object.
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
func NewMetrics ¶
func NewMetrics() *Metrics
func (*Metrics) Register ¶
func (m *Metrics) Register(reg prometheus.Registerer) error
func (*Metrics) Unregister ¶
func (m *Metrics) Unregister(reg prometheus.Registerer)
type PageStats ¶
type PageStats struct {
UncompressedSize uint64
CompressedSize uint64
CRC32 uint32
RowsCount uint64
Encoding string
DataOffset uint64
DataSize uint64
ValuesCount uint64
}
PageStats provides statistics about a page in a column.
type RowPredicate ¶
type RowPredicate interface {
// contains filtered or unexported methods
}
RowPredicate is an expression used to filter rows in a data object.
type RowReader ¶
type RowReader struct {
// contains filtered or unexported fields
}
RowReader is a reader for index pointers in a data object.
func NewRowReader ¶
NewRowReader creates a new RowReader for the given section.
func (*RowReader) Close ¶
Close closes the RowReader and releases any resources it holds. Closed RowReaders can be reused by calling RowReader.Reset.
func (*RowReader) Read ¶
Read reads up to the next len(s) indexpointers from the reader and stores them into s. It returns the number of indexpointers read and any error encountered. At the end of the indexpointers section, Read returns 0, io.EOF.
func (*RowReader) Reset ¶
Reset resets the RowReader with a new decoder to read from. Reset allows reusing a RowReader without allocating a new one.
Any set predicate is cleared when Reset is called.
Reset may be called with a nil object and a negative section index to clear the RowReader without needing a new object.
func (*RowReader) SetPredicate ¶
func (r *RowReader) SetPredicate(p RowPredicate) error
SetPredicate sets the predicate to use for filtering indexpointers. RowReader.Read will only return indexpointers for which the predicate passes.
SetPredicate returns an error if the predicate is not supported by RowReader.
A predicate may only be set before reading begins or after a call to RowReader.Reset.
type Section ¶
type Section struct {
// contains filtered or unexported fields
}
Section represents an opened indexpointers section.
func Open ¶
Open opens a Section from an underlying dataobj.Section. Open returns an error if the section metadata could not be read or if the provided ctx is canceled.
type Stats ¶
type Stats struct {
UncompressedSize uint64
CompressedSize uint64
MinTimestamp time.Time
MaxTimestamp time.Time
TimestampDistribution []uint64 // Indexpointer count per hour.
Columns []ColumnStats
}
Stats provides statistics about a indexpointers section.
type TimeRangeRowPredicate ¶
A TimeRangeRowPredicate is a RowPredicate which requires a start and end timestamp column to exist, and for the timestamp to be within the range.