On 06/24/2015 07:44 PM, Soumya Koduri wrote:
On 06/24/2015 10:14 AM, Krishnan Parthasarathi wrote:
----- Original Message -----
I've been looking at the recent patches to redirect GF_FOP_IPC to an
active
subvolume instead of always to the first. Specifically, these:
http://review.gluster.org/11346 for DHT
http://review.gluster.org/11347 for EC
http://review.gluster.org/11348 for AFR
I can't help but wonder if there's a simpler and more generic way to
do this,
instead of having to do this in a translator-specific way each time
- then
again for NSR, or for a separate tiering translator, and so on. For
example
what if each translator had a first_active_child callback?
xlator_t * (*first_active_child) (xlator_t *parent);
Then default_ipc could invoke this, if it exists, where it currently
invokes
FIRST_CHILD. Each translator could implement a bare minimum to
select a
child, then "step out of the way" for a fop it really wasn't all that
interested in to begin with. Any thoughts?
We should do this right away. This change doesn't affect external
interfaces.
we should be bold and implement the first solution. Over time we
could improve
on this.
+1. It would definitely ease the implementation of many such fops
which have to default to first active child. We need not keep track of
all the fops which may get affected with new clustering xlators being
added.
I haven't seen the patches yet. Failures can happen just at the time of
winding, leading to same failures. It at least needs to have the logic
of picking next_active_child. EC needs to lock+xattrop the bricks to
find bricks with good copies. AFR needs to perform getxattr to find good
copies. Just giving more information to see if it helps.
Pranith
Thanks,
Soumya
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel