High-Performance Networking Using eBPF, XDP, and io_uring

In the networking world there are a number of ways to increase performance over naive use of basic Berkeley sockets. These techniques have ranged from polling blocking sockets, non-blocking sockets controlled by Epoll, all the way through completely bypassing the Linux kernel for maximum network performance where you talk directly to the network interface card by using something like DPDK or Netmap. This talk will dive into crucial details, such as how AF_XDP works, how it can be integrated into a larger system and finally more advanced topics such as request sharding/load balancing. There will be detailed look at the design of AF_XDP, the eBpf code used, as well as the userspace code required to drive it all. It will also include performance numbers from this setup compared to regular kernel networking. And most importantly how to put all this together to handle as much data as possible on a single modern multi-core system.

21 Minutes
Bryan McCoid

Bryan McCoid, Sr. Distributed Systems Engineer, Couchbase Inc.

Bryan is a Senior Software Engineer at Couchbase Inc. He currently works primarily in distributed systems on Couchbase Server but has always had a passion for low level, systems programming with an emphasis on Linux, async I/O, and (fast) networking in general. Proud member of multiple Linux Kernel Mailing lists (ebpf, io_uring, xdp). Rust language enthusiast, and overall lover of types and compilers. Currently an active contributor to the Glommio thread-per-core asynchronous runtime for the Rust programming language and supporter of all things open source. He has worked in many industries (eCommerce, Security, Databases) but always gravitated towards systems programming, no matter where that was.

Register for 2 days of keynotes & interactive tech talks on all things P99.

Virtual Event

October 19-20, 2022

Share on social with #p99conf and a link to p99conf.io for a chance to win $500.