mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
lib/storage: reduce the frequency (and overhead) for timeout and pace limiter checks by 4x
This commit is contained in:
parent
7dbe335426
commit
8e44fba76d
2 changed files with 11 additions and 11 deletions
|
@ -780,7 +780,7 @@ func (is *indexSearch) searchTagKeys(tks map[string]struct{}, maxTagKeys int) er
|
||||||
prefix := kb.B
|
prefix := kb.B
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for len(tks) < maxTagKeys && ts.NextItem() {
|
for len(tks) < maxTagKeys && ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -860,7 +860,7 @@ func (is *indexSearch) searchTagValues(tvs map[string]struct{}, tagKey []byte, m
|
||||||
prefix := kb.B
|
prefix := kb.B
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for len(tvs) < maxTagValues && ts.NextItem() {
|
for len(tvs) < maxTagValues && ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -936,7 +936,7 @@ func (is *indexSearch) getSeriesCount() (uint64, error) {
|
||||||
kb.B = marshalTagValue(kb.B, nil)
|
kb.B = marshalTagValue(kb.B, nil)
|
||||||
ts.Seek(kb.B)
|
ts.Seek(kb.B)
|
||||||
for ts.NextItem() {
|
for ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
@ -1008,7 +1008,7 @@ func (is *indexSearch) getTSDBStatusForDate(date uint64, topN int) (*TSDBStatus,
|
||||||
prefix := kb.B
|
prefix := kb.B
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for ts.NextItem() {
|
for ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1532,7 +1532,7 @@ func (is *indexSearch) searchTSIDs(tfss []*TagFilters, tr TimeRange, maxMetrics
|
||||||
tsids := make([]TSID, len(metricIDs))
|
tsids := make([]TSID, len(metricIDs))
|
||||||
i := 0
|
i := 0
|
||||||
for loopsPaceLimiter, metricID := range metricIDs {
|
for loopsPaceLimiter, metricID := range metricIDs {
|
||||||
if loopsPaceLimiter&(1<<10) == 0 {
|
if loopsPaceLimiter&(1<<12) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1604,7 +1604,7 @@ func (is *indexSearch) updateMetricIDsByMetricNameMatch(metricIDs, srcMetricIDs
|
||||||
mn := GetMetricName()
|
mn := GetMetricName()
|
||||||
defer PutMetricName(mn)
|
defer PutMetricName(mn)
|
||||||
for loopsPaceLimiter, metricID := range sortedMetricIDs {
|
for loopsPaceLimiter, metricID := range sortedMetricIDs {
|
||||||
if loopsPaceLimiter&(1<<10) == 0 {
|
if loopsPaceLimiter&(1<<12) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2092,7 +2092,7 @@ func (is *indexSearch) getMetricIDsForTagFilterSlow(tf *tagFilter, maxLoops int,
|
||||||
prefix := tf.prefix
|
prefix := tf.prefix
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for ts.NextItem() {
|
for ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<14) == 0 {
|
if loopsPaceLimiter&(1<<16) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2216,7 +2216,7 @@ func (is *indexSearch) updateMetricIDsForOrSuffixNoFilter(prefix []byte, maxMetr
|
||||||
loopsPaceLimiter := 0
|
loopsPaceLimiter := 0
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for metricIDs.Len() < maxMetrics && ts.NextItem() {
|
for metricIDs.Len() < maxMetrics && ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2258,7 +2258,7 @@ func (is *indexSearch) updateMetricIDsForOrSuffixWithFilter(prefix []byte, metri
|
||||||
var sf []uint64
|
var sf []uint64
|
||||||
var metricID uint64
|
var metricID uint64
|
||||||
for ts.NextItem() {
|
for ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<12) == 0 {
|
if loopsPaceLimiter&(1<<14) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2799,7 +2799,7 @@ func (is *indexSearch) updateMetricIDsForPrefix(prefix []byte, metricIDs *uint64
|
||||||
loopsPaceLimiter := 0
|
loopsPaceLimiter := 0
|
||||||
ts.Seek(prefix)
|
ts.Seek(prefix)
|
||||||
for ts.NextItem() {
|
for ts.NextItem() {
|
||||||
if loopsPaceLimiter&(1<<16) == 0 {
|
if loopsPaceLimiter&(1<<18) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(is.deadline); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,7 @@ func (s *Search) NextMetricBlock() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
for s.ts.NextBlock() {
|
for s.ts.NextBlock() {
|
||||||
if s.loops&(1<<10) == 0 {
|
if s.loops&(1<<12) == 0 {
|
||||||
if err := checkSearchDeadlineAndPace(s.deadline); err != nil {
|
if err := checkSearchDeadlineAndPace(s.deadline); err != nil {
|
||||||
s.err = err
|
s.err = err
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in a new issue