[Gluster-devel] Design for lookup-optimize made default

Shyam srangana at redhat.com
Mon Dec 14 17:10:09 UTC 2015


Sakshi,

In the doc. there is reference to the fact that when a client fixes a 
layout it assigns the same dircommit hash to the layout which is 
equivalent to the vol commit hash. I think this assumption is incorrect, 
when a client heals the layout, the commit hash is set to 1 
(DHT_LAYOUT_HASH_INVALID) [1].

What the above basically means is that when anyone other than rebalance 
changes the layout of an existing directory, it's commit-hash will start 
disagreeing with the volume commit hash. So that part is already handled 
(unless I am missing something, which case it is a bug and we need it 
fixed).

The other part of the self-heal, I would consider *not* needed. If a 
client heals a layout, it is because a previous layout creator 
(rebalance or mkdir) was incomplete, and hence the client needs to set 
the layout. If this was by rebalance, the rebalance process would have 
failed and hence would need to be rerun. For abnormal failures on 
directory creations, I think the proposed solution is heavy weight, as 
lookup-optimize is an *optimization* and so it can devolve into 
non-optimized modes in such cases. IOW, I am stating we do not need to 
do this self healing.

I think we still need to handle stale layouts and the lookup (and other 
problems).

[1] 
https://github.com/gluster/glusterfs/blob/master/xlators/cluster/dht/src/dht-selfheal.c#L1685

On 12/11/2015 06:08 AM, Sakshi Bansal wrote:
> The above link may not be accessible to all. In that case please refer to this:
> https://public.pad.fsfe.org/p/dht_lookup_optimize
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
>


More information about the Gluster-devel mailing list