Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Does Homa have problems with excessive buffer usage?

NoThis is an open question. This claim has been made by a few recent papers, most notably Aeolus. However, these papers based their claims on inaccurate assumptions about switch buffer management. For example, the Aeolus paper assumes that switch buffer space is statically divided among egress ports, whereas in fact switches provide shared pools of buffers, so they can handle brief spikes at a particular port. See the Aeolus rebuttal for more discussion of the Aeolus claims.

Our experience with practical implementations of Homa has found no problems with buffer overflows. For example, the worst-case buffer consumption in benchmarks of the Linux kernel implementation was about 8.5 MB, for a switch with 13.5 MB capacity (these benchmarks used a 25 Gbps network). Extrapolations suggest that Homa will also work with newer 100 Gbps switching chips such as Broadcom’s Tomahawk chips, though buffer space will be tighter in these chips than it is in the current 25 Gbps network.

Our measurements indicate that TCP needs at least as much buffer space as Homa, so any switch that works for TCP is likely to work for Homa. It seems unlikely that people will create switches that don’t work for TCP.

It appears that newer switching chips are increasing their bandwidth faster than their buffer space. Suppose there comes a time where switches no longer have enough buffer space for Homa: will that make Homa useless?

No. To date we have not made any attempt to reduce Homa’s buffer usage, but it seems likely that buffer usage could be reduced significantly. For example, most buffer usage comes from either unscheduled packets or overcommittment. In the worst case, these could be scaled back to reduce buffer consumption (but this would come at some cost in performance). We also have ideas for a optimizations that might reduce buffer usage without any performance impact. See the projects page for details.

Bottom line: it is premature to declare that Homa is impractical because of its buffer usage when (a) we have actual implementation experience that shows this is not a problem, and (b) we have ideas how to reduce buffer usage in the future if that should be needed, and see this article for a more comprehensive discussion of Homa buffer usage.

Is Homa resilient against dropped packets?

Homa is resilient in that it will detect dropped packets and retransmit them, but Homa assumes that drops are extremely rare. If packets are dropped frequently, Homa will perform poorly. Packet drops from corruption are extremely rare, so the only thing to worry about is buffer overflow. Fortunately, Homa’s buffer usage is low enough to make buffer overflow extremely unlikely in modern switches.

How does Homa handle incast?

...