prometheus/storage/metric/tiered
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
..
compaction_regression_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
curator.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
dto.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
end_to_end_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
freelist.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
freelist_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
helpers_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
index.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
instrumentation.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
interface_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
leveldb.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
marshal.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
memory.go Optimize label matcher memory and runtime behavior. 2014-05-05 11:29:17 -04:00
memory_test.go Optimize label matcher memory and runtime behavior. 2014-05-05 11:29:17 -04:00
objective.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
operation.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
operation_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
processor.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
processor_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
regressions_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
rule_integration_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
sample_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
samplekey.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
stochastic_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
tiered.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
tiered_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
view.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
view_test.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00
watermark.go Separate storage implementation from interfaces. 2014-04-16 13:30:19 +02:00