HOMA is a novel transport protocol (like TCP, UDP, etc…) proposed recently in a paper by by Montazeri, Li, Alizadeh, and Ousterhout
that is specifically designed to dramatically improve the performance of message-passing in
networks with a high-volume of small messages. Specifically, HOMA is an attempt to catch up to
hardware latency capabilities by exploiting the fact that the vast majority of messages in most network
applications is in the range of a few hundred bytes. By addressing this HOMA achieves a speedup of
almost 100x in such situations.
HOMA relies on three main design principles to achieve its goals:
Priority Queues
◦ HOMA heavily exploits the priority queues present in modern-day network switches by
assigning priorities in a highly-efficient and dynamic manner.
Controlled Overcommitment
◦ HOMA overcommits receiver downlinks in order to make the most efficient use of
bandwith possible. This is crucial to reducing queuing, which is one of the main sources of
HOMA speed, because it addresses one of the main difficulties that arises with the way
HOMA schedules packets.
Connectionless Design
◦ One of HOMA’s main sources of speed is it’s strong crackdown on queuing times via a
dramatic reduction in message latency. A streaming approach (like in TCP) increases
message latency, since it necessitates the establishment of a connection. Thus, in order to
achieve minimum latency it is necessary to transmit packages “blindly”, i.e. in a
connectionless way.
How do HOMA principles lower latency?
Suppose that you want to send a message using HOMA. The first thing that happens is that the sender
transmits the first few bytes of the message you want to send blindly (these bytes also include the
message size), this is the unscheduled portion of the message. Once the receiver has the transmitted
bytes, it broadcasts a “grant” packet, which lets the sender know that it should send the rest of the
message. The message is scheduled “in-network” using the priority queues of the network switches,
and the whole process is supported by the higher bandwith utilization acquired with controlled
overcommitment.