Re: Progress on adding support for SEEK_DATA and SEEK_HOLE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/01/2015 08:53 AM, Niels de Vos wrote:
On Tue, Jun 30, 2015 at 11:48:20PM +0530, Ravishankar N wrote:


On 06/22/2015 03:22 PM, Ravishankar N wrote:


On 06/22/2015 01:41 PM, Miklos Szeredi wrote:
On Sun, Jun 21, 2015 at 6:20 PM, Niels de Vos <ndevos@xxxxxxxxxx> wrote:
Hi,

it seems that there could be a reasonable benefit for virtual machine
images on a FUSE mountpoint when SEEK_DATA and SEEK_HOLE would be
available. At the moment, FUSE does not pass lseek() on to the
userspace
process that handles the I/O.

Other filesystems that do not (need to) track the position in the
file-descriptor are starting to support SEEK_DATA/HOLE. One example is
NFS:

https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-38#section-15.11

I would like to add this feature to Gluster, and am wondering if there
are any reasons why it should/could not be added to FUSE.
I don't see any reason why it couldn't be added.  Please go ahead.

Thanks for bouncing the mail to me Niels, I would be happy to work on
this. I'll submit a patch by Monday next.



Sent a patch @
http://thread.gmane.org/gmane.comp.file-systems.fuse.devel/14752
I've tested it with some skeleton code in gluster-fuse to handle lseek().

Ravi also sent his patch for glusterfs-fuse:

   http://review.gluster.org/11474

I have posted my COMPLETELY UNTESTED patches to their own Gerrit topic
so that we can easily track the progress:

   http://review.gluster.org/#/q/status:open+project:glusterfs+branch:master+topic:wip/SEEK_HOLE

My preference goes to share things early and make everyone able to
follow progress (know where to find the latest patches). Assistance in
testing, reviewing and improving is welcome! There are some outstanding
things like seek() for ec and sharding, and probably more.

This all was done as a suggestion from Christopher (kripper) Pereira,
for improving the handling of sparse files (like most VM images).

I've posted the patch for ec in the same Gerrit topic:

    http://review.gluster.org/11494/

It has not been tested and some discussion about if it's really needed to send the request to all subvolumes will be needed.

The lock and the xattrop are absolutely needed. Even if we send the request to only one subvolume, we need to know which ones are healthy (to avoid sending the request to a brick that could have invalid hole information). This could have been done in open, but since NFS does not issue open calls, we cannot rely on that.

Once we know which bricks are healthy we could opt for sending the request only to one of them. In this case we need to be aware that even healthy bricks could have different hole locations.

What do you think ?

Xavi
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux