On Thu, Mar 21, 2013 at 8:05 PM, Yan, Zheng <zheng.z.yan@xxxxxxxxx> wrote: > On 03/22/2013 05:23 AM, Gregory Farnum wrote: >> On Sun, Mar 17, 2013 at 7:51 AM, Yan, Zheng <zheng.z.yan@xxxxxxxxx> wrote: >>> From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> >>> >>> For MDS cluster, not all file system namespace operations that impact >>> multiple MDS use two phase commit. Some operations use dentry link/unlink >>> message to update replica dentry's linkage after they are committed by >>> the master MDS. It's possible the master MDS crashes after journaling an >>> operation, but before sending the dentry link/unlink messages. Later when >>> the MDS recovers and receives cache rejoin messages from the surviving >>> MDS, it will find linkage mismatch. >> >> I think you're here talking about link/unlink, and the MDS crashing >> after it's sent out the LogEvent to the OSD but it hasn't actually >> dispatched the observer slave requests. Is that right? This commit >> message really confused me; I was trying to figure out which namespace >> operations were hacking around a proper 2-phase commit by unlinking >> and relinking inodes into the tree! (The link/unlink code also is >> doing a 2-phase commit, it just doesn't force a particular order for >> the journaling, which was previously left unhandled). > > I was talking about the cases that use MDCache::send_dentry_{link,unlink} > to update replica dentry. There are a lot of usage in Server.cc. Ah, we do this on mknod and openc as well as an explicit client link, which makes sense. I think I was reading more into your statement than was actually there. -Greg -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html