[Gluster-devel] AFR conservative merge portability
Krutika Dhananjay
kdhananj at redhat.com
Mon Dec 15 05:40:46 UTC 2014
Seems OK to me, as long as the appropriate locks are taken.
-Krutika
----- Original Message -----
> From: "Emmanuel Dreyfus" <manu at netbsd.org>
> To: "Gluster Devel" <gluster-devel at gluster.org>
> Sent: Saturday, December 13, 2014 8:08:03 PM
> Subject: [Gluster-devel] AFR conservative merge portability
> Hello
> On NetBSD, tests/basic/afr/entry-self-heal.t always fail on this
> scenario:
> mkdir spb_heal
> kill brick brick0
> touch spb_heal/0
> glusterfs volume start force
> kill_brick brick1
> touch spb_heal/1
> glusterfs volume start force
> At that time, conservative merge takes off and copy spb_heal/0 and
> spb_heal/1 in each brick where it is missing. That works, but on NetBSD
> we are left with AFR xattr on spb_heal directory telling each brick
> accuses the other for metadata. This metadata split brain that will not
> self heal.
> This happens because after adding an entry, parent directory (spb_heal
> here) mtime/ctime must be updated. On Linux, it seems the filesystem is
> responsible for that. On NetBSD, the kernel filesyste-independant code
> takes care of it and will send a SETATTR to update ctime/mtime on parent
> directory.
> So when we touch spb_heal/0 and spb_heal/1, the NetBSD kernel sends a
> SETATTR for spb_heal ctime/mtine, and since the other brick is down,
> here is our metadata split brain.
> In http://review.gluster.org/9267, Krutika Dhananjay fixes the test by
> clearing AFR xattr to remove the split brain state, but while it let the
> test pass, it does not address the real world problem that will leave
> metadata split brain that does not self heal.
> Here is a proposal: we know that at the end of conservative merge, we
> should end up with the situation where directory ctime/mtime is the
> ctime of the most recently added children. And fortunately, as
> conservative merge happens, parent directory ctime/mtime are updated on
> each child addition, and we finish in the desired state.
> In other words, after conservative merge, parent directory metadata
> split brain for only ctime/mtime can just be cleared by AFR without any
> harm.
> Does it looks reasonable? Any opinion?
> --
> Emmanuel Dreyfus
> http://hcpnet.free.fr/pubz
> manu at netbsd.org
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://supercolony.gluster.org/mailman/listinfo/gluster-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20141215/4781d17e/attachment.html>
More information about the Gluster-devel
mailing list