Show 18 quoted lines
> Linus Torvalds <torvalds@linux-foundation.org> writes:
>
>> Ok, here's an interesting patch based on the current 'next' (since it very
>> intimately requires the new in-memory index format).
>
> This is nice. It does not do anything specific with HFS+ issues
> but aims for faster look-ups, which would help everybody.
>
> Two things I noticed (only two, not necessarily because you are
> good but mostly because I am still mired in day job and could
> not get enough uninterrupted minutes to read the patch ;-)):
>
> - You might want to store the hash table (once computed) in the
> index extension section, and lazily unpack the table the
> first time index_name_exists() or set_index_entry() is called
> on the given istate, instead of unpacking it immediately when
> you read from the disk. That way, ls-files does not have to
> suffer at all.
Actually, I take one fourth of this back.
* I am not yet retracting the suggestion to do the hashing
lazily (what I mean by "lazily" is that the first access that
wants hashed access will iterate active_cache and hash them
all, not "lazily one entry at a time as needed" which would
not make any sense for a hashtable). I have to find time to
try benching the effect of it myself. So that's one half
retained.
* We certainly do not necessarily want to store this in the
index right now. The hash algorithms would be improved from
the version you are almost ashamed of ;-). That sounds as if
I am retrating the other half, but not quite.
* Once we have a mechanism to detect that the extension section
stores a precomputed hash that was done with a different
algorithm and ignore it (and recompute afresh when needed),
then we can afford to put a more elaborate hashing algorithm,
slightly loosening one of your "Guiding principles", and keep
the result in the generated index to be reused by the next
user. So that is why I am retracting only half of the
suggestion to save it in the extension section (which in turn
is a half of my suggestion).