On 08/14/2017 09:08 PM, Chris Murphy wrote: > On Mon, Aug 14, 2017 at 8:23 AM, Goffredo Baroncelli <kreij...@inwind.it> > wrote: > >> Form a theoretical point of view, if you have a "PURE" COW file-system, you >> don't need a journal. Unfortunately a RAID5/6 stripe update is a RMW cycle, >> so you need a journal to keep it in sync. The same is true for the NOCOW >> file (and their checksums) >> > > I'm pretty sure the raid56 rmw is in memory only, I don't think we > have a case where a stripe is getting partial writes (a block in a > stripe is being overwritten). Partial stripe updates with rmw *on > disk* would mean Btrfs raid56 is not CoW. >
I am not sure about that. Consider the following cases: - what if we have to wrote less than a stripe ? - supposing to remove a file with length of 4k. If you don't allow a RMW cycle, this means the space would be lost forever.... Pay attention that the size of a stripe (theoretically) could be quite big: suppose to have an (insanely) raid compose by 20disks, the stripe would be about 20*64k = ~1.2MB....) BR G.Baroncelli -- gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it> Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html