Re: [RFC/WIP PATCH] object store classification
- Date: Tue, 11 Jul 2017 11:46:03 -0700
- From: Junio C Hamano <gitster@xxxxxxxxx>
- Subject: Re: [RFC/WIP PATCH] object store classification
Brandon Williams <bmwill@xxxxxxxxxx> writes:
>> the_repository -> the_object_store
>> but the object store is a complex beast having different hash tables
>> for the different alternates.
> After looking at the patch and some of the comments here I think that
> this is probably the best approach with a few tweaks (which may be
> completely unfounded because I'm not familiar with all the object store
> In an OO world I would envision a single object (let's say 'struct
> object_store') which is responsible for managing a repository's objects
> no matter where the individual objects came from (main object store or
> an alternate for that repository). And if I understand correctly the
> single hash table that exists now caches objects like this.
I would say that conceptually an object-store object has an
interface to answer "give me info on the object I can refer to with
this object name". At the implementation level, it should have a
hashtable (lazily populated) for all the objects in a single
$GIT_OBJECT_DIRECTORY, grafts/replace info, and a set of pointers to
other object-store instances that are its alternate object stores.
You'd need to have a mechanism to avoid creating cycles in these
pointers, of course.