← All pins

Pins tagged “networking”

Offloading I/O to Dedicated Cores: An Asymmetric io_uring Backend for Seastar and ScyllaDB

An engineering writeup from the ScyllaDB team on reworking Seastar's io_uring backend so application shards stop spending their own CPU cycles on I/O. Instead of every shard issuing syscalls, shards are grouped and each group hands its asynchronous I/O to a dedicated networking core; the chosen design gives each shard a private io_uring instance while sharing kernel worker pools through IORING_SETUP_ATTACH_WQ, with a single SQPOLL thread polling the group's submission queues so nothing blocks on the compute cores. The post is candid about the tradeoffs, walking through three architectures the team weighed and measuring where the asymmetric backend actually wins on compute heavy request handling versus where one networking core becomes the bottleneck on copy_to_user for pure I/O workloads.

networkingio_uringdatabases

GCRA: a simple and elegant rate-limiting algorithm

A clear walkthrough of the Generic Cell Rate Algorithm (GCRA), the mechanism behind the leaky-bucket rate limiter. Instead of tracking a counter that has to be refilled on a timer, GCRA stores a single timestamp — the theoretical arrival time of the next conforming request — and decides admission with a bit of arithmetic. The post builds the intuition step by step and shows why this is both memory-cheap and pleasant to implement.

rate-limitingalgorithmsnetworking