From: Junio C Hamano Date: Sat, 01 Oct 2011 20:41:45 GMT Subject: Re: Git is not scalable with too many refs/* Message-ID: <7vwrcola0m.fsf@alter.siamese.dyndns.org> In-Reply-To: <201109301606.31748.mfick@codeaurora.org> Martin Fick writes: > I guess this makes sense, we invalidate the cache and have > to rebuild it after every new ref is added? Perhaps a > simple fix would be to move the invalidation right after all > the refs are updated? Maybe write_ref_sha1 could take in a > flag to tell it to not invalidate the cache so that during > iterative updates it could be disabled and then run manually > after the update? It might make sense, on top of Julian's patch, to add a bit that says "the contents of this ref-array is current but the array is not sorted", and whenever somebody runs add_ref(), append it also to the ref-array (so that the contents do not have to be re-read from the filesystem) but flip the "unsorted" bit on. Then update look-up and iteration to sort the array when "unsorted" bit is on without re-reading the contents from the filesystem.