Google engineers figured out a way to improve latency within the company’s software-defined networking (SDN) platform — Andromeda. Google released the latest version of the platform, Andromeda 2.1, today and says it reduces network latency between Google Compute Engine virtual machines by 40 percent compared to Andromeda 2.0.
Google fellow Amin Vahdat said most people think about bandwidth when they think about the performance of a network. “Our infrastructure does quite well on measures of bandwidth,” said Vahdat. “But most distributed applications care more about latency than bandwidth. We’re constantly getting new hardware to increase bandwidth. But with latency, it does involve these entrenched software layers. We’ve really focused on the latency of our network.”
The search-engine company developed software to speed the processing of packets between guest operating systems and the Andromeda SDN stack.
“The way communication works for a virtualized server is that the packets that make up the network communication have to go from the guest operating system, get copied into the hypervisor, the hypervisor does work on them to ensure safety, then the hypervisor puts the data onto the network,” said Vahdat. “We’re allowing, through software we’ve developed, for the guest operating system to go directly to our Andromeda stack. And we’ve worked hard to make Andromeda very fast and very CPU-efficient, while ensuring the safety.”
The Andromeda 2.1 latency improvements come from a form of hypervisor bypass that builds on virtio, the Linux paravirtualization standard for network and disk device drivers, writes Jake Adriaens, a Google Cloud software engineer, in a blog posting today. “Andromeda 2.1 enhancements enable the Compute Engine guest VM and the Andromeda software switch to communicate directly via shared memory network queues, bypassing the hypervisor completely for performance-sensitive per-packet operations,” Adriaens writes.
The chart below shows the new datapath via Andromeda 2.1.
“The key thing is we maintain the security while reducing the overhead,” said Vahdat.
Google used open source code from virtio as part of its latency-improvement software. And the company plans to open source some aspects of its technology.
Google’s SDN strategy is comprised of four major components. Jupiter is its data center network. B4 WAN is the technology that connects Google data centers to one another. And Espresso is its peering edge infrastructure to connect Google’s network to other ISPs.
“Andromeda is the thing that virtualizes our physical networks whether B4 or Jupiter, so cloud customers can treat our network as if it were a dedicated entity,” said Vahdat. “The bottom line is: all communications from and to VMs go through Andromeda. It is the key determiner of performance.”