Datacenter RPCs Can Be General and Fast
Offered By: USENIX via YouTube
Course Description
Overview
Explore a groundbreaking approach to datacenter networking that challenges the belief that high performance requires sacrificing generality. Dive into the innovative eRPC library, which offers performance comparable to specialized systems while running on commodity CPUs in traditional datacenter networks. Learn how eRPC excels in message rate for small messages, bandwidth for large messages, and scalability to numerous nodes and CPU cores. Discover its ability to handle packet loss, congestion, and background request execution. Examine impressive microbenchmark results, including one CPU core handling up to 10 million small RPCs per second and sending large messages at 75 Gbps. Investigate the successful port of a production-grade Raft state machine replication implementation to eRPC, achieving 5.5 microseconds of replication latency on lossy Ethernet. Gain insights into modern datacenter networks, low-overhead transport layers, efficient congestion control, and the importance of common case optimizations in fast networking software.
Syllabus
Intro
Modern datacenter networks are fast
Existing networking options sacrifice performance or generality
Specialization for fast networking
eRPC provides both speed and generality
Managing packet loss
In low-latency networks, switch buffers prevent most loss
All modern switches have buffers BDP
Low-overhead transport layer
Example: Optimized DMA buffer management for rare packet loss
Example: Efficient congestion control in software
Datacenter networks are usually uncongested
Congestion control, fast and slow
Easy integration with existing applications
Takeaway: Given fast packet 10, we can provide fast networking in software
Together, common case optimizations matter
Taught by
USENIX
Related Courses
Software as a ServiceUniversity of California, Berkeley via Coursera Software Testing
University of Utah via Udacity The Hardware/Software Interface
University of Washington via Coursera Software Debugging
Saarland University via Udacity Introduction to Systematic Program Design - Part 1
The University of British Columbia via Coursera