On Thu, Jul 11, 2019 at 07:42:20AM +0800, Gao Xiang wrote: > > At 2019/7/11 ??????5:50, Andreas Gr??nbacher Wrote: > > At this point, can I ask how important this packing mechanism is to > > you? I can see a point in implementing inline files, which help > > because there tends to be a large number of very small files. But for > > not-so-small files, is saving an extra block really worth the trouble, > > especially given how cheap storage has become? > > I would try to answer the above. I think there are several advantages by > using tail-end packing inline: > 1) It is more cache-friendly. Considering a file "A" accessed by user > now or recently, we > ?????? tend to (1) get more data about "A" (2) leave more data about "A" > according to LRU-like assumption > ?????? because it is more likely to be used than the metadata of some other > files "X", especially for files whose > ?????? tail-end block is relatively small enough (less than a threshold, > e.g. < 100B just for example); > > 2) for directories files, tail-end packing will boost up those traversal > performance; > > 3) I think tail-end packing is a more generic inline, it saves I/Os for > generic cases not just to > ?????? save the storage space; > > "is saving an extra block really worth the trouble" I dont understand > what exact the trouble is... "the trouble" is adding code complexity and additional things to test. I'm not sure you really understood Andreas' question. He's saying that he understands the performance and space gain from packing short files (eg files less than 100 bytes). But how many files are there between 4096 and 4196 bytes in size, let alone between 8192 and 8292, 12384 and 12484 ... Is optimising for _those_ files worth it?