The GitHub Actions job "Pull Requests" on 
pekko.git/feature/artery-frequency-sketch has failed.
Run started by GitHub user He-Pin (triggered by pjfanning).

Head commit for run:
f6d81c299d0b63f5aa3ec3f982c2e025ddaa946c / 虎鸣 <[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/27711987501

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to