Cornflakes: Zero-Copy Serialization for Microsecond-Scale Networking
Published in Proceedings of The 29th ACM Symposium on Operating Systems Principles, October 2023.
Abstract
Data serialization is critical for many datacenter applications, but the memory copies required to move application data into packets are costly. Recent zero-copy APIs expose NIC scatter gather capabilities, raising the possibility of offloading this data movement to the NIC. However, as the memory coordination required for scatter-gather adds bookkeeping overhead, scatter-gather is not always useful.We describe Cornflakes, a hybrid serialization library stack that uses scatter-gather for serialization when it improves performance and falls back to memory copies otherwise.We have implemented Cornflakes within a UDP and TCP networking stack, across Mellanox and Intel NICs. On a Twitter cache trace, Cornflakes achieves 15.4% higher throughput than prior software approaches on a custom key-value store and 8.8% higher throughput than Redis serialization within Redis.
Paper (1MB)
BibTeX entry
@inproceedings{cornflakes-sosp23,
author = "Deepti Raghavan and Shreya Ravi and Gina Yuan and Pratiksha Thaker and Sanjari Srivastava and Micah Murray and Pedro Henrique Penna and Amy Ousterhout and Philip Levis and Matei Zaharia and Irene Zhang",
title = "{Cornflakes: Zero-Copy Serialization for Microsecond-Scale Networking}",
booktitle = "{Proceedings of The 29th ACM Symposium on Operating Systems Principles}",
year = {2023},
month = {October}
}