From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS6315 166.70.0.0/16 X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_LOW,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from out02.mta.xmission.com (out02.mta.xmission.com [166.70.13.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 377BC1F597; Thu, 2 Aug 2018 12:25:44 +0000 (UTC) Received: from in02.mta.xmission.com ([166.70.13.52]) by out02.mta.xmission.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.87) (envelope-from ) id 1flCfm-0006wO-QQ; Thu, 02 Aug 2018 06:25:42 -0600 Received: from [97.119.167.31] (helo=x220.xmission.com) by in02.mta.xmission.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.87) (envelope-from ) id 1flCfl-0004uu-Qk; Thu, 02 Aug 2018 06:25:42 -0600 From: ebiederm@xmission.com (Eric W. Biederman) To: Eric Wong Cc: meta@public-inbox.org References: <878t5qkpis.fsf@xmission.com> <20180801164344.7911-8-ebiederm@xmission.com> <20180802030022.ly2tvbobs7tkfmn3@whir> <20180802034404.cnvfqlgvynamnc6n@whir> Date: Thu, 02 Aug 2018 07:25:37 -0500 In-Reply-To: <20180802034404.cnvfqlgvynamnc6n@whir> (Eric Wong's message of "Thu, 2 Aug 2018 03:44:04 +0000") Message-ID: <87wot9hs5a.fsf@xmission.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1flCfl-0004uu-Qk;;;mid=<87wot9hs5a.fsf@xmission.com>;;;hst=in02.mta.xmission.com;;;ip=97.119.167.31;;;frm=ebiederm@xmission.com;;;spf=neutral X-XM-AID: U2FsdGVkX1/pROW5WN4jkgD13OXuZQhgls8DUgpS1tw= X-SA-Exim-Connect-IP: 97.119.167.31 X-SA-Exim-Mail-From: ebiederm@xmission.com Subject: Re: [WIP] searchidx: support incremental indexing on indexlevel=basic X-SA-Exim-Version: 4.2.1 (built Thu, 05 May 2016 13:38:54 -0600) X-SA-Exim-Scanned: Yes (on in02.mta.xmission.com) List-Id: Eric Wong writes: > I wrote: >> While testing this, it looks like I introduced a bug to >> indexlevel=basic which broke incremental indexing when I made it >> possible to upgrade to (medium|full). Patch coming for that in >> a bit... > > Eep, I think there's deeper problems with indexlevel=basic and > incremental updates, since it's still doing lookups against > Xapian for deletes... > > This is my work-in-progress to stop full-reindexing, at least. So I don't think your change is quite right. If the repo has only lived with indexlevel == 'basic' then last_commit should always match the output of xdb->get_metadata('last_commit') as it will always been undef or ''. In fact I don't see any code that is updating $xdb->get_metadata('last_commit'); Am I wrong or can we just always use mm->last_commit for this logic? Eric > ----8<----- > Subject: [PATCH] searchidx: support incremental indexing on indexlevel=basic > > --- > lib/PublicInbox/SearchIdx.pm | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm > index 54f82aa..5cac08f 100644 > --- a/lib/PublicInbox/SearchIdx.pm > +++ b/lib/PublicInbox/SearchIdx.pm > @@ -668,6 +668,15 @@ sub need_update ($$$) { > ($n eq '' || $n > 0); > } > > +sub _last_x_commit { > + my ($self) = @_; > + if ($self->{indexlevel} =~ $xapianlevels) { > + $self->{xdb}->get_metadata('last_commit'); > + } else { > + $self->{mm}->last_commit || ''; > + } > +} > + > # indexes all unindexed messages (v1 only) > sub _index_sync { > my ($self, $opts) = @_; > @@ -682,7 +691,7 @@ sub _index_sync { > do { > $xlog = undef; > $mkey = 'last_commit'; > - $last_commit = $xdb->get_metadata('last_commit'); > + $last_commit = $self->_last_x_commit; > $lx = $last_commit; > if ($reindex) { > $lx = ''; > @@ -707,7 +716,7 @@ sub _index_sync { > $xlog = _git_log($self, $range); > > $xdb = $self->begin_txn_lazy; > - } while ($xdb->get_metadata('last_commit') ne $last_commit); > + } while ($self->_last_x_commit ne $last_commit); > > my $dbh = $mm->{dbh} if $mm; > my $cb = sub {