mirror of
https://github.com/prometheus/prometheus.git
synced 2026-04-03 16:26:12 -04:00
This optimizes the runtime and memory allocation behavior for label matchers other than type "Equal". Instead of creating a new set for every union of fingerprints, this simply adds new fingerprints to the existing set to achieve the same effect. The current behavior made a production Prometheus unresponsive when running a NotEqual match against the "instance" label (a label with high value cardinality). BEFORE: BenchmarkGetFingerprintsForNotEqualMatcher 10 170430297 ns/op 39229944 B/op 40709 allocs/op AFTER: BenchmarkGetFingerprintsForNotEqualMatcher 5000 706260 ns/op 217717 B/op 1116 allocs/op Change-Id: Ifd78e81e7dfbf5d7249e50ad1903a5d9c42c347a |
||
|---|---|---|
| .. | ||
| test | ||
| bytesize.go | ||
| cache.go | ||
| deadline_client.go | ||
| embed-static.sh | ||
| file_ext.go | ||
| freelist.go | ||
| set.go | ||
| set_test.go | ||
| sort.go | ||
| strconv.go | ||
| time.go | ||
| uncertaintygroup.go | ||
| uncertaintygroup_test.go | ||