[Gluster-devel] Replacing loopback with Unix Domain Sockets for I/O

Jeff Darcy jdarcy at redhat.com
Fri Nov 6 14:16:48 UTC 2015


On November 6, 2015 at 3:13:01 AM, Prasanna Kumar Kalever (pkalever at redhat.com) wrote:
> Humble, I am sure the patches above refer to using Unix Domain sockets
> for volfile transmission.  My proposal is for I/O between processes on
> the same hypervisor, specially for hyper-convergence scenario :)

The main issue here is naming/discovery.  First, we have to figure out
that we are in fact on the same host.  We have code to do that e.g. for
selecting a local AFR replica, so it shouldn’t be too bad.  Then we need
a path for the UNIX-domain socket.  We might be able to use a brick UUID
or something else that’s already in the client volfile, or of course we
could add something.  Alternatively, we could combine these two parts by
connecting to the brick over TCP first and having them tell us the UDS
path as part of the connection handshake.  If we find that path locally,
we disconnect from TCP and reconnect via UDS.  Either way, we need to
have the brick listen on the UDS, we need to deal with some special
cases if TLS was enabled, and probably deal with some other secondary
issues I haven’t even thought of yet.  It’s certainly possible, but it’s
not completely trivial so we’d really want to validate that it does
actually improve performance.  That could be done by manually hacking
volfiles and running a few benchmarks.  Let me know if you’d like some
help with that.


More information about the Gluster-devel mailing list