[Gluster-devel] libgfapi zero copy write - application in samba, nfs-ganesha
srangana at redhat.com
Wed Sep 28 14:07:11 UTC 2016
On 09/27/2016 04:02 AM, Poornima Gurusiddaiah wrote:
> W.r.t Samba consuming this, it requires a great deal of code change in Samba.
> Currently samba has no concept of getting buf from the underlying file system,
> the filesystem comes into picture only at the last layer(gluster plugin),
> where system calls are replaced by libgfapi calls. Hence, this is not readily
> consumable by Samba, and i think same will be the case with NFS_Ganesha, will
> let the Ganesha folksc comment on the same.
This is exactly my reservation about the nature of change  that is
done in this patch. We expect all consumers to use *our* buffer
management system, which may not be possible all the time.
From the majority of consumers that I know of, other than what Sachin
stated as an advantage for CommVault, none of the others can use the
gluster buffers at the moment (Ganesha, SAMBA, qemu. (I would like to
understand how CommVault can use gluster buffers in this situation
without copying out data to the same, just for clarity).
This is the reason I posted the comments at , stating we should copy
out the buffer, when Gluster needs it preserved, but use application
provided buffers as long as we can.
I do see the advantages of zero-copy, but not when gluster api is
managing the buffers, it just makes it more tedious for applications to
use this scheme, IMHO.
Could we think and negate (if possible) thoughts around using the
application passed buffers as is? One caveat here seems to be when using
RDMA (we need the memory registered if I am not wrong), as that would
involve a copy to RDMA buffers when using application passed buffers.
What are the other pitfalls?
More information about the Gluster-devel