prometheus/utility
Julius Volz 4df5c7ab18 Optimize label matcher memory and runtime behavior.
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
2014-05-05 11:29:17 -04:00
..
test Include LevelDB fixture generators for curator. 2013-03-27 15:13:40 +01:00
bytesize.go Simplify compaction and expose database sizes. 2013-05-14 12:29:53 +02:00
cache.go Extract LRUCache into generic cache type. 2013-08-17 13:57:49 +02:00
deadline_client.go Add variable interpolation to notification messages. 2013-08-12 12:29:08 +02:00
embed-static.sh Update embedding script to support BSD find. 2013-03-21 11:50:13 +01:00
file_ext.go Add a check for metrics directory existence. 2013-10-22 20:54:34 +02:00
freelist.go Update low-level i'faces to reflect wireformats. 2013-09-04 17:13:58 +02:00
set_test.go Address outstanding comments from PR/47 and other cleanups. 2013-02-07 11:38:01 +01:00
set.go Optimize label matcher memory and runtime behavior. 2014-05-05 11:29:17 -04:00
sort.go Add sort() and sort_desc() expression language functions. 2013-04-10 18:05:45 +02:00
strconv.go Integrate cleanups for comments in PR70. 2013-02-14 19:03:17 +01:00
time.go Swap `time.Now with testable Time.Now`. 2013-01-27 19:59:20 +01:00
uncertaintygroup_test.go Add curation remark table and refactor error mgmt. 2013-04-28 17:26:34 +02:00
uncertaintygroup.go Remove race conditions from UncertaintyGroup 2013-05-07 18:15:16 +02:00