----- Original Message -----
> From: "Xavier Hernandez" <xhernan...@datalab.es>
> To: "Raghavendra Gowdappa" <rgowd...@redhat.com>
> Cc: "Gluster Devel" <gluster-devel@gluster.org>
> Sent: Wednesday, October 29, 2014 6:24:55 PM
> Subject: Re: [Gluster-devel] Quota problems with dispersed volumes
> 
> On 10/28/2014 02:05 PM, Xavier Hernandez wrote:
> > On 10/28/2014 04:30 AM, Raghavendra Gowdappa wrote:
> >>
> >> We use extended attribute with key "trusted.glusterfs.quota.size" to
> >> get the size of a directory/file. The value for this key is probed in
> >> lookup and getxattr calls. You can implement logic to handle this key
> >> appropriately in disperse xlator to give a proper size to higher
> >> layers. In your existing implementation you might have been probably
> >> passing xattrs from one of the bricks and hence seeing size from only
> >> one brick.
> >
> > I think this patch fixes the problem:
> >
> >      http://review.gluster.org/8990
> >
> 
> It seems that there are some other xattrs visible from client side. I've
> identified 'trusted.glusterfs.quota.*.contri'. Are there any other
> xattrs that I should handle on the client side ?

this is an internal xattr which only marker (disk usage accounting xlator) 
uses. The applications running on glusterfs shouldn't be seeing this. If you 
are seeing this xattr from mount, we should filter this xattr from being listed 
(at fuse-bridge and gfapi).

> 
> It seems that there's also a 'trusted.glusterfs.quota.dirty'

This is again an internal xattr. You should not worry about handling this. This 
also needs to be filtered from being displayed to application.

> and
> 'trusted.glusterfs.quota.limit-set'.

This should be visible from mount point, as this xattr holds the value of quota 
limit set on that inode. You can handle this in disperse xlator by picking the 
value from any of its children.

> 
> How I should handle visible xattrs in ec xlator if they have different
> values in each brick ?
> 
> trusted.glusterfs.quota.size is handled by choosing the maximum value.

This depends on how ec is handling the files/directories and the meaning of 
xattr. For eg., trusted.glusterfs.quota.size represents the size of the 
file/directory. When read from brick, the value will be the size of directory 
on that brick. When read from a cluster translator like dht, it will be the 
size of that directory across the whole cluster. So, in dht we add up the 
values from all bricks and set the sum as the value. However, in case of 
replicate/afr, we just pick the value from any of the subvolume.

> 
> Thanks,
> 
> Xavi
> 
_______________________________________________
Gluster-devel mailing list
Gluster-devel@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-devel

Reply via email to