IterateLowSeriesIDs iterates low series ids from storage, then found low series id which query need.
(lowSeriesIDsFromStorage roaring.Container, fn func(seriesIdxFromQuery uint16, seriesIdxFromStorage int), )
| 394 | |
| 395 | // IterateLowSeriesIDs iterates low series ids from storage, then found low series id which query need. |
| 396 | func (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. |
| 423 | func (ctx *DataLoadContext) Reduce(reduceFn func(it series.GroupedIterator)) { |