Skip to content

Deferred: multi-queue throughput sharding (scale past one core) #121

Description

@vxfemboy

Mirrored from Forgejo — originally by @Ghost. https://virus.ad/femboy/yip/issues/10

The single-ring io_uring busy-poll loop (#7) is single-core by design: one thread does all crypto+FEC. Its wins are latency + GSO + lock removal, NOT raw multi-Gbit throughput. Scaling throughput across cores is a separate architecture, explicitly deferred out of the io_uring milestone.

Scope (future)

  • Multiple io_uring rings/threads, one per core, with flows sharded across them (e.g. by 5-tuple hash / RSS-style steering) so aggregate throughput scales with core count toward multi-Gbit.
  • Per-core DataPlane state (the mutex-free DataPlane extracted in Phase A makes this feasible — each shard owns one), with careful handling of the feedback loop / ARQ / retransmit buffer per shard.
  • Steering: kernel RSS + SO_REUSEPORT, or userspace demux.

Notes

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions