From 0d0b58966b2ae7e96848c2f05491a66c62531385 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 13 Nov 2020 11:11:42 +0000 Subject: *index: avoid per-epoch --batch-check processes Since all.git (v2) and ALL.git (extindex) encompass every single epoch or indexed inbox; and is_ancestor() only uses hexadecimal OIDs; there is no good reason to use $unit->{git} for an epoch-local $git->check. This prevents dozens/hundreds of --batch-check processes from being left running after indexing and can improve locality if size checks are being done (since that uses --batch-check, too). Theoretically several epochs may have conflicting OIDs, but we're screwed in those cases, anyways, so we might as well detect it earlier (though I'm not sure what the behavior would be :x). --- lib/PublicInbox/V2Writable.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/V2Writable.pm') diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 87b76501..cf44c95b 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -966,7 +966,7 @@ sub update_last_commit { my $latest_cmt = $stk ? $stk->{latest_cmt} : ${$sync->{latest_cmt}}; defined($latest_cmt) or return; my $last = last_epoch_commit($self, $unit->{epoch}); - if (defined $last && is_ancestor($unit->{git}, $last, $latest_cmt)) { + if (defined $last && is_ancestor($self->git, $last, $latest_cmt)) { my @cmd = (qw(rev-list --count), "$last..$latest_cmt"); chomp(my $n = $unit->{git}->qx(@cmd)); return if $n ne '' && $n == 0; @@ -1003,7 +1003,7 @@ sub log_range ($$$) { my $range = "$cur..$tip"; $pr->("$i.git checking contiguity... ") if $pr; my $git = $unit->{git}; - if (is_ancestor($git, $cur, $tip)) { # common case + if (is_ancestor($sync->{self}->git, $cur, $tip)) { # common case $pr->("OK\n") if $pr; my $n = $git->qx(qw(rev-list --count), $range); chomp($n); -- cgit v1.2.3-24-ge0c7