Skip to content

4.5: Profile every shipping component and qualify runtime performance #28

Open
1 of 5 issues completed

Description

@igorls

What to deliver

A source-pinned profiling coverage ledger and repeatable evidence for every shipping Hyperion component: readers/codecs, worker scheduling and IPC, RabbitMQ, Elasticsearch writes/queries, state adapters and engines, Redis/caches, REST/streaming, SDK/plugins, Rust archive/snapshot paths and recovery. Prefer Bun 1.4.3 when qualification supports it and retain measured Node controls.

Acceptance criteria

  • Every applicable component has a workload, correctness oracle, exact run manifest and CPU/native, allocation/GC, wall/wait, queue, storage and latency-distribution evidence, or an explicit unfinished/unmeasured status.
  • Include live-only, backfill-only and mixed serving/backfill, cold/warm caches, deployment/reload, failure, restart and fork cases. Preserve live priority and reader backpressure.
  • Report stage bottlenecks from correlated resource/critical-path evidence, not elapsed averages alone. Publish baseline variance, profiler overhead and measured before/after optimization results.
  • Qualify Bun 1.4.3 separately from its checker/test-driver role; record native/transport/lifecycle limitations and the selected runtime per supported platform.
  • Keep an ES release-review log with primary sources, applicable paths, profiling/correctness cases and exact tested server/client versions.
  • Link bounded delivery slices and existing domain/backend/recovery qualification issues without duplicating them. Coverage is not closed by the initial Windows smoke or historical dense report.

First evidence

The recorded Windows x64 smoke passes Node24 cluster IPC, native uWS HTTP and native ABI roundtrip. Bun1.4.3 passes cluster IPC and ABI roundtrip but fails loading uWS20.67.0 with missing napi_register_module_v1. A local2kWAX shard has verified file/framing coverage; canonical blocks and historical ABI coverage remain prerequisites. Full stack throughput has not been measured in this workstream.

Release context

Part of the Hyperion 4.5 component profiling program, requested on 2026-10-18. The source-backed program and first runtime evidence are in https://github.com/eosrio/hyperion-tools/blob/46f12c97374d0b89102ec14c0d661d245f69fb1e/docs/performance/hyperion-4.5-profiling.md . Existing reliability work remains in eosrio/hyperion-history-api#187; retained-history upgrade and release selection remain in eosrio/hyperion-history-api#190 and #20. No automatic server upgrade or runtime-support claim follows from a benchmark.

Activity

  1. igorls commented on Oct 19, 2026

    @igorls
    MemberAuthor

    Parallel #195/#208 work now has reviewable deliverables:

    • API #209: block-valid ABI context selection and cache invalidation.
    • API #210: seven passing real broker/worker recovery cases and three reproduced baseline defects.
    • API #211: one finite known-genesis contract replay, 87 blocks and 12 actions across two ABI revisions, with exact final output on both ES copies.
    • Tools #39: profiling, release research and roadmap checkpoint with immutable evidence links.

    Native Linux execution and exact fixture/process cleanup were verified on Hyperion-1. These correctness runs establish no shared-host capacity or runtime comparison. Next: persisted checkpoint/restart evidence in #195 and integrated live fork/late broker callbacks in #208, alongside #196 stage instrumentation. #197 transport work remains deferred. The release's compatibility and parity gates stay open.

  2. igorls commented on Oct 22, 2026

    @igorls
    MemberAuthor

    The operator selected Bun 1.4.4 for the shared TypeScript checker baseline; the coordinated repository changes are tracked in #61. Embedded TypeScript remains 7.0.2, and native Node 22/24 acceptance stays required.

    The operator's Bun#27338 is bundled in the open #46528. A fresh read-only Hyperion-3 probe of the exact locked Elasticsearch client 8.19.1 / transport 8.10.1 / undici 8.3.0 against owned ES 9.5.5 passed info+close under Node 24.19.0 and reproduced the response.headers / pool.close failures on released Bun 1.4.4. The measured baseline and the exact future merged-build qualification gates are recorded in History API#197. Bundling and checker adoption do not establish Bun production runtime support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    release:4.5Hyperion 4.5 release worktype:coordinationCross-repository release coordination

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions