Flagship: pyroscope PhlareDB.GetBlockStats slices.Contains per block (O(B*U) -> O(B+U)). Long-retention tenants with 5k-10k blocks pay 1M+ membership checks per block-stats RPC. Set hoist: 438x at B=10k U=1k. Wave 13 honor roll: lima, apollo-server, act, firecracker, nix. Cumulative: 59 projects.
13 lines
622 B
Text
13 lines
622 B
Text
=== pyroscope-0001: PhlareDB.GetBlockStats O(B*U) -> O(B+U) ===
|
|
|
|
scale defective fixed speedup
|
|
-------------------------------------------------------
|
|
B= 500 U= 100 1.81ms 0.04ms 47.0x
|
|
B= 1000 U= 200 7.59ms 0.08ms 96.3x
|
|
B= 2000 U= 200 15.66ms 0.15ms 103.0x
|
|
B= 2000 U= 500 38.00ms 0.17ms 224.5x
|
|
B= 5000 U= 500 102.96ms 0.36ms 282.2x
|
|
B=10000 U=1000 239.79ms 0.55ms 438.8x
|
|
|
|
Conclusion: O(B*U) -> O(B+U) — set hoist on the requested ULID list.
|
|
At B=10k U=1k (long-retention pyroscope tenant), speedup is 100x+.
|