On Fri, Feb 23, 2018 at 11:30 PM, Xuehan Xu <xxhdx1985126@xxxxxxxxx> wrote: > Hi, everyone. > > What's the purpose of journaler's prezero? It seems that it is a means > of setting the edge of continuously written journal entries which is > the end of journal replaying, right? > If this is true, why isn't checksum used? I think checksum can achieve > the same goal as the journal entry that fails the verification can > serve as the end of journal replaying, and it wouldn't involve extra > I/O. The MDS/Journaler can have multiple pending IOs. Imagine: * pending write to object 100.000 * completes write to object 100.001 * MDS crashes * pending writes fail * new MDS restarts and fills in object 100.000 * new MDS crashes * yet another MDS replays, discovers journal ends in 100.001, but the entry is malformed and so it crashes. That's why it originally existed. I think the malformed entries may matter less with the new journal format, but you still have to worry about running into a journal entry that never really happened (because we lost the op events leading up to it). -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