The 2006 Linux Filesystems Workshop (Part III)
Posted Jul 7, 2006 0:14 UTC (Fri) by
PaulMcKenney (subscriber, #9624)
In reply to:
The 2006 Linux Filesystems Workshop (Part III) by arjan
Parent article:
The 2006 Linux Filesystems Workshop (Part III)
Great document, interesting stuff!!! A few questions, as always...
(1) In the discussion of hard-linking, it looked to me that directories with links get replicated in the directory's chunk and in the hard-link destination's chunk. Is this the case, or am I confused (and on second reading, it looks like only the directory entries linking to this chunk get replicated)? If it is that case, there is some sort of mutex that covers all chunks to allow both replicas of the directory to be updated atomically?
(2) Is rename still atomic? In other words, is a single task guaranteed that if it sees the new name, a subsequent lookup won't see the old name and conversely?
(3) Is unlink still atomic?
(4) Does dcache know about the continuation inodes? (Can't see why it would need to, but had to ask...)
(5) Stupid question (just like the others, but this time I am admitting it up front!) -- for a multichunk file, why have the overhead information in the chunks that are fully consumed by their segment of the file? Why not just mark the chunk as being entirely data, and have some notation that indicates that the entire chunk is an extent? And is this enough heresy for one question, or should I try harder next time? ;-)
(6) Is intra-chunk compatibility with ext2/3 a goal?
(7) I am a bit concerned about the following sequence of events: (a) chunk zero is half full, with lots of smallish logfiles. (b) a large file is created, and starts in chunk 0 (perhaps one of the logfiles is wildly expanding or something). (c) the large file fills chunk 0 and expands to chunk 1 with a continuation inode. (d) each and every logfile expands, finds no space, and each thus needs its own continuation inode, violating the assumption that continuation inodes are rare. Or did I miss something here? If I am not too confused, one approach would be to detect large files and make them -only- have continuation inodes, with -no- data stored in a chunk shared with other files. How to detect this? Sorry, no clue!!!
(
Log in to post comments)