Thread (33 messages) 33 messages, 2 authors, 2016-12-26

Re: [PATCH v2 10/21] read-cache: regenerate shared index if necessary

From: Christian Couder <hidden>
Date: 2016-12-26 08:33:52

On Mon, Dec 19, 2016 at 12:48 PM, Duy Nguyen [off-list ref] wrote:
On Sat, Dec 17, 2016 at 03:55:36PM +0100, Christian Couder wrote:
quoted
+static const int default_max_percent_split_change = 20;
+
+static int too_many_not_shared_entries(struct index_state *istate)
+{
+     int i, not_shared = 0;
+     int max_split = git_config_get_max_percent_split_change();
+
+     switch (max_split) {
+     case -1:
+             /* not or badly configured: use the default value */
+             max_split = default_max_percent_split_change;
+             break;
+     case 0:
+             return 1; /* 0% means always write a new shared index */
+     case 100:
+             return 0; /* 100% means never write a new shared index */
I wonder if we really need to special case these here. If I read it
correctly, the expression at the end of this function will return 1
when max_split is 0, and 0 when max_split is 100 (not counting the
case when cache_nr is zero).
It's better for performance if we can avoid computing the number of
unshared entries, which we can in case of 0 or 100.
Perhaps it's good for documentation purpose.
Yeah, I think it's also good for documentation purpose.
Though I find it hard to
see a use case for max_split == 0. Always creating a new shared index
sounds crazy.
Yeah, but perhaps to test shared index writing performance people
might want to use it. And I don't see any good way or any good reason
to disallow it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help