Homa: A Receiver-Driven Low-Latency Transport Protocol Using Network Priorities



  • Homa: new transport protocol for DC networks

  • Provides low latency, especially for workloads with a high volume of very short messages, and it also supports large messages and high network utilization


  • Existing transport protocols are ill-suited to these conditions, so the latency they provide for short messages is far higher than the hardware potential, particularly under high network loads

  • Homo

    • Favors small messages

    • But also improves the performance of large messages in comparison to TCP-like approaches based on fair sharing

  • Two innovations

    • Aggressive use of priority queues provided by modern network switches

      • Assigns priorities dynamically on receivers, and it integrates the priorities with a receiver-driven flow control mechanism

    • Controller over-commitment: a receiver allows a few senders to transmit simultaneously

      • Utilizing the bandwidth efficiently

  • Unusual features

    • Message-based architecture rather than a streaming approach

      • Eliminates head-of-line blocking at senders and reduces tail latency

    • Connectionless

    • No explicit ack

    • At-least-once semantics

  • Metric: tail message latency (99th percentile): most important metric for datacenter application

Motivation and Key ideas


  • NIC and software stack advances

  • All prior work has focused on workloads with very large messages

  • Existing DC transport design cannot achieve the lowest possible latency for tiny messages at high network load

Design space

  • Key design principles

    • Transmit short messages blindly

    • Using in-network priorities

    • Allocate priorities dynamically at receivers in conjunction with receiver-driven rate control

    • Controlled over-commitments of receiver downlinks

  • Focus on message latency (instead of packet latency), since it reflects application performance

  • Key

    • There is no time to schedule every packet

      • Short messages are transmitted blindly, without considering potential congestion

    • Buffering is a necessary evil

      • Latency penalty of buffering

    • In-network priorities are a must

      • Assign packet priorities so that short messages bypass queued packets for longer messages

    • Making best use of limited priorities requires receiver control

      • In order to produce the best approximation of SRPT with only a small number of priority levels

    • Receivers must allocate priorities dynamically

      • Two mechanisms:

        • For messages larger than RTTbytes, the receiver communicates a priority for each packet to its sender dynamically based on the exact set of inbound messages

        • For short messages that sent blindly, the sender cannot know about other messages inbound for the receiver

    • Receivers must overcommit their downlink in a controlled manner

      • Intentionally overcimmit their downlinks by granting simultaneously to a small number of senders

    • Senders need SRPT also

Last updated