Re: Git is not scalable with too many refs/*
- From
- Martin Fick <mfick@codeaurora.org>
- Date
- Sep 29, 2011, 20:44 UTC
- Message-ID
- <201109291444.33076.mfick@codeaurora.org>
- In-Reply-To
- <7vy5x7rwq9.fsf@alter.siamese.dyndns.org>
On Thursday, September 29, 2011 01:10:06 pm Junio C Hamano wrote:
Show 9 quoted lines
> Also we would probably want to drop "next" field from > "struct ref_list" (i.e. making it not a linear list), > introduce a new "struct ref_array" that is a > ALLOC_GROW() managed array of pointers to "struct > ref_list", make get_packed_refs() and get_loose_refs() > return a pointer to "struct ref_array" after sorting the > array contents by "name". Then resolve_ref() can do a > bisection search in the packed refs array when it does > not find a loose ref.
That would be nice, and I suspect it would shave a bit more of the orphan check and possibly even a fetch. If I understood all that, I might try. But I might need some hand holding, my C is pretty rusty... Is there a bisection search library in git already to use? Is there a git sorting library for the array also?
-Martin
-- Employee of Qualcomm Innovation Center, Inc. which is a member of Code Aurora Forum