Show HN: Easy DPDK-based messaging on cloud VMs with Machnet(github.com)
github.com
Show HN: Easy DPDK-based messaging on cloud VMs with Machnet
https://github.com/microsoft/machnet
3 comments
Hi all! We've built Machnet to provide an easy way for applications to reduce their datacenter networking latency via kernel-bypass (DPDK-based) messaging. Distributed applications like databases and finance can use Machnet as the networking library to get sub-100 microsecond tail network latency at high message rates, e.g., 750,000 1KB request-reply messages per second on Azure F8s_v2 VMs with 61 microsecond P99.9 round-trip latency. Machnet supports a variety of cloud (Azure, AWS, GCP) and bare-metal platforms, OSs and NICs, evaluated in https://github.com/microsoft/machnet/blob/main/docs/PERFORMA....
While there are several other DPDK-based network stacks, Machnet provides the following unique benefits: (1) Specifically designed for and tested on public cloud VM environments. (2) Multiple applications on the same machine can use Machnet. (3) No need for DPDK expertise, or compiling the application with DPDK.
Architecture: Machnet runs as a separate process on all machines where the application is deployed and mediates access to the DPDK NIC. Applications interact with Machnet over shared memory with a sockets-like API. Machnet processes in the cluster communicate with each other using DPDK.
(In the past I'd built eRPC, discussed on HN here https://news.ycombinator.com/item?id=19418997. Machnet has an improved design that fixes several issues that we found made eRPC difficult to use in real applications.)
While there are several other DPDK-based network stacks, Machnet provides the following unique benefits: (1) Specifically designed for and tested on public cloud VM environments. (2) Multiple applications on the same machine can use Machnet. (3) No need for DPDK expertise, or compiling the application with DPDK.
Architecture: Machnet runs as a separate process on all machines where the application is deployed and mediates access to the DPDK NIC. Applications interact with Machnet over shared memory with a sockets-like API. Machnet processes in the cluster communicate with each other using DPDK.
(In the past I'd built eRPC, discussed on HN here https://news.ycombinator.com/item?id=19418997. Machnet has an improved design that fixes several issues that we found made eRPC difficult to use in real applications.)