Hacker News new | ask | show | jobs
by nick0garvey 1213 days ago
I don't agree. A subset of high performance applications in a datacenter can use a new protocol while still supporting TCP for other applications. I'm not saying this is easy, or even worth it, but it isn't all or nothing.
2 comments

I think the parent commenter would be pretty surprised how much code would really need a rewrite. Google and Amazon do not have hundreds of thousands of engineers messing around in the mud with sockets and connections and IP addresses and DNS. There's a service mesh and a standardised RPC framework. You say "get me the X service" and you make RPCs to it. Whether they're transported over HTTP, UDP, unix domain sockets, or local function calls is fully abstracted.
If you need to go that fast why not implement a layer 2 protocol?

The point of these abstractions is that they are insurance. We pay taxes on best case scenarios all the time in order to avoid or clamp worst case scenarios. When industries start chasing that last 5% by gambling on removing resiliency, that usually ends poorly for the rest of us. See also train lines in the US.

> If you need to go that fast why not implement a layer 2 protocol?

How? Datacenters aren't a single link, you need to route packets.

> The point of these abstractions is that they are insurance. We pay taxes on best case scenarios all the time in order to avoid or clamp worst case scenarios. When industries start chasing that last 5% by gambling on removing resiliency, that usually ends poorly for the rest of us.

I'm not sure what this means. There are other transport level protocols already, UDP is in fairly regular use. Is your argument that TCP offers us some insurance that Homa will not?

> If you need to go that fast why not implement a layer 2 protocol?

Because datacenter is not single LAN segment ? You need to route it

Do they need to replace a lot of code?

I'd suspect that the tcp bits are hidden in the rpc layer anyway, be it grpc or whatever

I think the point is: Goals of "A subset of high performance applications" is not going to _replace_ TCP unless its works OK for everyone else.

Additional M.O. protocol cool, but replace TCP with it?