Re: What's so special about objects/17/ ?
- From
Stefan Beller <sbeller@google.com>
- Date
- Oct 9, 2018, 17:37 UTC
- Message-ID
- <CAGZ79ka5kKrSqPCWFMDetRLYxDqcguJUzJXDex9q-VMwT-ABAw@mail.gmail.com>
- In-Reply-To
- <xmqq4ldwszh8.fsf@gitster-ct.c.googlers.com>
On Mon, Oct 8, 2018 at 6:03 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 24 quoted lines
> > Stefan Beller <sbeller@google.com> writes: > > > On Sun, Oct 7, 2018 at 1:07 PM Junio C Hamano <gitster@pobox.com> wrote: > >> > >> Junio C Hamano <gitster@pobox.com> writes: > > > >> > ... > >> > by general public and I do not have to explain the choice to the > >> > general public ;-) > >> > >> One thing that is more important than "why not 00 but 17?" to answer > >> is why a hardcoded number rather than a runtime random. It is for > >> repeatability. > > > > Let's talk about repeatability vs statistics for a second. ;-) > > Oh, I think I misled you by saying "more important". > > I didn't mean that it is more important to stick to the "use > hardcoded value" design decision than sticking to "use 17". I've > made sure that everybody would understnd choosing any arbitrary byte > value other than "17" does not make the resulting Git any better nor > worse.
Yes, I totally get that. We could have chosen 42 just because.
Show 6 quoted lines
> But discussing the design decision to use hardcoded value is > "more important", as that affects the balance between the end-user > experience and debuggability, and I tried to help those who do not > know the history by giving the fact that choice was made for the > latter and not for other hidden reasons, that those who would > propose to change the system may have to keep in mind.
From an end users point of view, the auto gc kicks in at random. (Maybe it's just me, but I don't keep track of the loose object count ;-)
For debuggability, we could design a system that allows for debugging, e.g. "When GIT_AUTO_GC_BIN is set, use the number as set, otherwise take a random slot".
> Sorry if you mistook it as if I were saying that it is important to > keep the design to use a hardcoded byte value. That wasn't what the > message was about.
I understood very well that the choice of value was arbitrary and you do not have a convincing story as to why 17 (and not say 23, but such a story is not required, as all slots are equal from a design perspective).
I do challenge the decision to take a hardcoded value, though, as it yields better properties for the end users IMHO, whereas debugging this specific case does not seem to be important to me.