The GitHub Actions job "Pull Requests" on pekko.git/feature/artery-frequency-sketch has failed. Run started by GitHub user He-Pin (triggered by He-Pin).
Head commit for run: eb1fd145eee86598776acca95956fa49ca6628aa / 虎鸣 <[email protected]> feat: replace CountMinSketch with FastFrequencySketch in Artery compression Motivation: The Artery compression system uses a CountMinSketch (128KB per connection, 16x1024x8 bytes) for heavy hitter detection in actor ref and class manifest compression tables. Pekko already has FastFrequencySketch in pekko-actor (used for cluster sharding entity passivation) which is ~32x more memory efficient (~4KB vs ~128KB per inbound connection), includes TinyLFU reset for natural aging, and is already battle-tested in production. This addresses akka/akka-core#31093. Modification: - InboundCompressions.scala: Add configurable frequency-sketch-implementation setting supporting both "fast-frequency-sketch" (default) and "count-min-sketch" (legacy). Introduce FrequencySketch trait with CountMinSketchFrequencySketch and FastFrequencySketchWrapper implementations. InboundCompression uses the configured sketch for heavy hitter detection. - TopHeavyHitters.scala: update() always allows weight updates for existing heavy hitters (necessary for FrequencySketch periodic reset). updateExistingHeavyHitter() supports both weight increase (push down) and decrease (bubble up) in the heap. New fixHeapUp() method for bidirectional heap property restoration. isHeavy() check only gates insertion of new entries. - CountMinSketch.java: Kept as legacy option, wrapped via CountMinSketchFrequencySketch adapter. - CountMinSketchBenchmark.scala: Updated to benchmark both implementations. - reference.conf: Added frequency-sketch-implementation config with "fast-frequency-sketch" as default. - CompressionIntegrationSpec: Added integration test verifying compression works with count-min-sketch implementation. Result: Artery compression uses ~4KB instead of ~128KB per inbound connection by default. Heavy hitters adapt to changing traffic patterns via TinyLFU aging. Legacy CountMinSketch remains available via config. Tests: - remote/testOnly HeavyHittersSpec: 13/13 passed (includes 2 new tests) - remote/testOnly CompressionTableSpec: 3/3 passed - remote/testOnly OutboundCompressionSpec: 2/2 passed - remote/Test/compile: success (new CompressionIntegrationSpec test) References: Refs akka/akka-core#31093 Report URL: https://github.com/apache/pekko/actions/runs/27616854493 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
