[Jifty-commit] r5591 - Runops-Trace/trunk
Jifty commits
jifty-commit at lists.jifty.org
Sat Jul 26 14:06:30 EDT 2008
Author: nothingmuch
Date: Sat Jul 26 14:06:30 2008
New Revision: 5591
Added:
Runops-Trace/trunk/TODO
Log:
TODO
Added: Runops-Trace/trunk/TODO
==============================================================================
--- (empty file)
+++ Runops-Trace/trunk/TODO Sat Jul 26 14:06:30 2008
@@ -0,0 +1,52 @@
+=head1 Hot path detection using decaying bloom filters
+
+Instead of using a hash of pointer to counter, implement the following:
+
+ - allocate a bitfield of size N. More bits = more accuracy. Maybe look into
+ dynamic bloom filters, to accomodate growing optree. Not really
+ important.
+
+ - prepare K hash functions (simple galois field multiplications over random
+ primes or sth)
+
+ - for every opcode address that matches the opmask, apply:
+
+ bitfield, bloom_fill;
+
+ do {
+ bitoffset = hash(i++, ptr); /* ptr is a CV or a PL_op */
+ } while ( i < k && bitfield[bitoffset] );
+
+ if ( i < k ) {
+ if ( ++bloom_fill > max_fill ) {
+ /* if the bloom filter is too full implement random decay */
+ for ( i = 0; i < chunk; i ++ ) {
+ bitfield[random] = 0;
+ bloom_fill--;
+ }
+ }
+
+ /* finally set the bit for hash(k, PL_op */
+ bitfield[bitoffset] = 1;
+ } else {
+ /* opcode exceeded threshold, execute trigger */
+ }
+
+ The bloom filter is a constant size, relatively low overhead
+ alternative to a hash, which can produce false positives, but
+ not false negative. The hot path is pretty much guaranteed to be found,
+ but a cold path could be mis identified as a hot path.
+
+ By adding decaying when the bloom filter is too full we can dynamically
+ identify a changing hot path.
+
+ Guesstimating that a pretty large (accurate) bloom filter with K at
+ around 3-4 and max_fill set fairly low should provide good results with
+ relatively low overhead.
+
+=head1 CV tracing
+
+Allow conditional tracing of ENTERSUB based on the CV it will invoke, instead
+of/in addition to the PL_op of the ENTERSUB.
+
+
More information about the Jifty-commit
mailing list