← All pins

Pins tagged “networking”

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

A ScyllaDB engineering post about a new io_uring backend for Seastar that breaks the usual shared nothing rule, where every core does its own I/O and compute. The asymmetric backend instead sets aside a few cores as dedicated networking workers while the rest run only application logic, and routes I/O syscalls to those workers through io_uring queues. To make it work the team had to remove a speculative fast path that let a shard skip io_uring and issue a plain syscall on its own core, since that shortcut defeats the point of offloading. The numbers are honest about the tradeoff: raw I/O throughput trails the older linux aio backend, but compute shards get back the CPU time they used to spend on sockets and disk calls.

networkingio_uringdatabases

GCRA: a simple and elegant rate-limiting algorithm

A clear guide to the Generic Cell Rate Algorithm (GCRA), which is used for leaky bucket rate limiting. Instead of tracking a counter and refilling it on a timer, GCRA stores one timestamp and uses a simple calculation to decide whether to allow a request. The post explains the idea step by step and shows why it needs little memory and is easy to build.

rate-limitingalgorithmsnetworking