MCPcopy
hub / github.com/lindb/lindb / IterateLowSeriesIDs

Method IterateLowSeriesIDs

flow/context.go:396–420  ·  view source on GitHub ↗

IterateLowSeriesIDs iterates low series ids from storage, then found low series id which query need.

(lowSeriesIDsFromStorage roaring.Container,
	fn func(seriesIdxFromQuery uint16, seriesIdxFromStorage int),
)

Source from the content-addressed store, hash-verified

394
395// IterateLowSeriesIDs iterates low series ids from storage, then found low series id which query need.
396func (ctx *DataLoadContext) IterateLowSeriesIDs(lowSeriesIDsFromStorage roaring.Container,
397 fn func(seriesIdxFromQuery uint16, seriesIdxFromStorage int),
398) {
399 min := ctx.MinSeriesID
400 max := ctx.MaxSeriesID
401 lowSeriesIDs := ctx.LowSeriesIDs
402 it := lowSeriesIDsFromStorage.PeekableIterator()
403 seriesIdxFromStorage := 0
404 for it.HasNext() {
405 seriesID := it.Next()
406 if seriesID > max {
407 break
408 }
409 if seriesID < min {
410 seriesIdxFromStorage++
411 continue
412 }
413 seriesIdxFromQuery := seriesID - min
414 if lowSeriesIDs[seriesIdxFromQuery] == seriesID {
415 // match low series invoke callback
416 fn(seriesIdxFromQuery, seriesIdxFromStorage)
417 }
418 seriesIdxFromStorage++
419 }
420}
421
422// Reduce reduces down sampling result.
423func (ctx *DataLoadContext) Reduce(reduceFn func(it series.GroupedIterator)) {

Callers 6

scanGroupingTagsMethod · 0.80
LoadMethod · 0.80
LoadMethod · 0.80

Calls 2

HasNextMethod · 0.65
NextMethod · 0.65