Junio C Hamano <gitster@xxxxxxxxx> writes: > Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> 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). - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html