From: Junio C Hamano Date: Sat, 14 Mar 2015 22:19:03 GMT Subject: Re: [PATCH v2 01/10] Define a structure for object IDs. Message-ID: In-Reply-To: Duy Nguyen writes: >> Anyway, wouldn't this be all academic? I do not see how you would >> keep the object name in the format in-core, as the >> obj_hash[] is a hashtable keyed by , and even when we switch >> to a different hash, I cannot see how such a table to ensure the >> singleton-ness of in-core objects can be keyed sometimes by >> and by in some other time. > > I'm implementing something to see how much we gain by avoiding object > lookup. The current approach is having "struct object ** obj" in > "struct packed_git", indexed by "nth". So when you have > and pack->obj[nth] is valid, you'll get to "struct object *" without > hashing. But do you realize that the hashtable serves two purposes? Grab the object from its name is one thing, and the other one I am not seeing how you will make it work with "sometimes sometimes " is to ensure that we will have only one in-core copy for the same object. We even walk the hashtable when we want to drop the flag bits from all in-core objects, so even if you instanciated an in-core object without going through the object name layer, the hashtable needs to have a pointer to such a pointer, no?