Skip to content
This repository has been archived by the owner on Nov 12, 2024. It is now read-only.

Would get better performance if akka-raft used udp #53

Open
colin-scott opened this issue Aug 1, 2015 · 4 comments
Open

Would get better performance if akka-raft used udp #53

colin-scott opened this issue Aug 1, 2015 · 4 comments

Comments

@colin-scott
Copy link
Contributor

It looks like akka-raft is configured by default to use TCP between nodes.

I would bet that the implementation could get notably better performance if it used UDP, by avoiding all of the extra network delays implied by TCP. The raft protocol should be resilient to message reorderings, duplicates, drops, etc.

@ktoso
Copy link
Owner

ktoso commented Aug 1, 2015

That one would be really hard to change as Akka does not provide a transport over UDP yet (we're temped by it, but it would need a remoting rewrite).

I'll keep the ticked open as a reminder, but it's not something immediately actionable until an Akka remoting rewrite happens.

@dmitraver
Copy link
Contributor

Good point. @ktoso Are you considering contributions for features like that? As far as I know akka remoting supports plugable transport implementation or its more complicated than that?

@dmitraver
Copy link
Contributor

It looks like akka remoting supports transport via udp. Netty transport has an udp mode. I've just tried to change the activator template akka-sample-remote-scala to use udp

remote {
    enabled-transports = ["akka.remote.netty.udp"]
    ...
}

and it works.

@ktoso
Copy link
Owner

ktoso commented Sep 15, 2015

I wouldn't say this is a direction I'd like to pursue currently, first I'd like to nail correctness.
Since this will be most likely used in Akka Clusters, TCP makes much sense in there, therefore switching to UDP does not seem very realistic for those kinds of deployments (at least with the current remoting impl).

It's a neat idea, but I'd rather stash it for now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants