On Tue, Jul 19, 2016 at 12:03 PM, Jonathan Tan <jonathantanmy@xxxxxxxxxx> wrote: > On Tue, Jul 19, 2016 at 9:46 AM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: >> Care to elaborate on why you choose 11/10 as growth factor? >> >> (As someone who has a tick in micro optimizing: >> 9/8 is roughly the same exponent, but the division >> by 8 is easier as it is just a shift by 3. Similar 17/16) > > I don't have a specific reason for 11/10 as opposed to, say, 9/8 - I > think that the time taken to execute this line is negligible compared > to what's done in the calling code, but I'll change it to 9/8 if there > is another reason for me to send another patch. > >> I guess one design criterion was 10 being a round number? >> Does it make sense to experiment with the factor at all? >> Digging into that, LARGE_FLUSH originates from 6afca450c3f, >> (2011-03-20, fetch-pack: progressively use larger handshake windows), >> and before we only had a linear growth. >> >> So I guess what I do not understand is why we need to slow down the >> exponential growth at all? > > The current code has an exponential (a' = a * 2) then a linear (a' = a > + 1024) growth. I'm not slowing down the exponential growth - that > part is retained. I'm replacing the linear growth with another > conservative exponential growth (a' = a * 11 / 10). Sorry for the miss understanding. Once we have the new conservative exponential, we'd have a fast exponential first (a=2*a) and then after a while a slower exponential (a=1.1*a). So we have 2 exponential curves with different growth properties. So my question could be reworded as: Why do we need two different exponential growth phases (as they are both exponential)? And I answered myself with: Oh, the exponents are different, so that's why. But then I tried to understand why we choose the 2 exponents as of this patch. (Why start with 2 and drop back to 1.1?) Could one exponential phase be sufficient with an exponent in between (e.g. a=1.3*a with a larger starting a to compensate for the reduced early growth) ? Or to reword it another way: Using just one exponential growth is simpler than 2 different exponential growth phases, so how do we explain the added complexity? Thanks, Stefan -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html