You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
Coordinated changes to close the apples-to-apples gap between FeedSim's t30 hot-function breakdown and prod `multifeed/aggregator_main`. Source comparison anchored on the t30 last-known-good baseline recorded in T269255604.
1. **`dlrm_inferences` 2 → 1** in `feedsim_dlrm` and `feedsim_autoscale_dlrm`. Profile shows FeedSim was +9.9pp Ranking-Prediction over prod (FS 15.8% vs prod 5.9% on BGM at dlrm=2). Halving inferences-per-request brings Ranking-Prediction toward the ~8% mark.
2. **Feature extractors enabled with t29-mini sizing** in `feedsim_autoscale_dlrm`. Changed args from `'--feature-extractors={feature_extractors}'` (with var `feature_extractors=0` → flag disabled) to boolean `'--feature-extractors'` and bumped `num_stories` 100 → 1800 to match the t29 mini tuning (90K extractor calls/req that landed FE CPU share in prod's 30-35% band).
3. **ZSTD wire compression on RocketClientChannel.** `channel->setDesiredCompressionConfig(zstdConfig)` on the outbound mock_services client. Plumbed via `MOCK_COMPRESS_ZSTD` env var (default on; set =0 to disable). LeafNodeRank uses gengetopt for CLI which rejects unknown flags, so env-var is the only injection path. Closes the −2.8pp RPC-Compression gap.
4. **Smaller response payload** in `RankingGenerators.h`. `RankingObject::write` self-time was 54% of FeedSim's RPC-Serialization bucket (+12.6pp over prod). Hardcoded sizes moved to named constexprs: `kPayloadEntriesPerMap` 5 → 2, `kActionsPerObject` 5 → 2, `kObjectsPerStory` 20 → 10. Net ~70% reduction in per-response serialization work.
5. **`FEEDSIM_SLA_P95_MS` env var** added to `run.sh` so search_qps SLA can be overridden without on-host sed-patching. Defaults to 500ms; t29/t30 used 700ms to give the new high-fanout design more headroom than the legacy 200ms-fixed-sleep code path.
6. **`-luring` baked into install scripts** (`FS_LDFLAGS`) to work around folly's CMake not propagating liburing as a transitive link dependency on RHEL9 + liburing 2.12 (undef refs: `io_uring_register_ifq`, `io_uring_register_eventfd`).
7. **Example TLS certs extracted from `packages/common/certs.tar.gz`** during install (--strip-components=1). Cert plumbing left in place for a future TLS-on-Rocket follow-up.
**TLS NOT enabled** in this diff: the open-source FBThrift v2026.01.05.00 Rocket transport rejects plain `folly::AsyncSSLSocket` — needs a fizz-based AsyncTransport adapter that isn't trivially exposed. The probe RPC inside MockServicesClient times out after 30s, LeafNodeRank catches and falls back to legacy folly::futures::sleep mode (no fanout, no TLS), which produces a misleading profile. Closing the Encryption gap (prod 3.3% vs FS 0%) is split into a follow-up that wires fizz properly into Rocket.
Differential Revision: D107318437
0 commit comments