From: Eric Wong <e@yhbt.net>
To: meta@public-inbox.org
Subject: [PATCH 08/23] xapcmd: simplify {reindex} parameter passing
Date: Thu, 20 Aug 2020 20:24:42 +0000 [thread overview]
Message-ID: <20200820202457.21042-9-e@yhbt.net> (raw)
In-Reply-To: <20200820202457.21042-1-e@yhbt.net>
No need to localize it, here, since we can just refer to it
in the `$opt' hashref. Hopefully this improves readability
for others like it does for me.
I sometimes wonder if the concept of a stack in high-level
languages is even necessary...
---
lib/PublicInbox/Xapcmd.pm | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm
index 46548a94..fffac99c 100644
--- a/lib/PublicInbox/Xapcmd.pm
+++ b/lib/PublicInbox/Xapcmd.pm
@@ -19,7 +19,6 @@ our @COMPACT_OPT = qw(jobs|j=i quiet|q blocksize|b=s no-full|n fuller|F);
sub commit_changes ($$$$) {
my ($ibx, $im, $tmp, $opt) = @_;
my $reshard = $opt->{reshard};
- my $reindex = $opt->{reindex};
$SIG{INT} or die 'BUG: $SIG{INT} not handled';
my @old_shard;
@@ -102,17 +101,17 @@ sub runnable_or_die ($) {
}
sub prepare_reindex ($$$) {
- my ($ibx, $im, $reindex) = @_;
+ my ($ibx, $im, $opt) = @_;
if ($ibx->version == 1) {
my $dir = $ibx->search->xdir(1);
my $xdb = $PublicInbox::Search::X{Database}->new($dir);
if (my $lc = $xdb->get_metadata('last_commit')) {
- $reindex->{from} = $lc;
+ $opt->{reindex}->{from} = $lc;
}
} else { # v2
my $max;
$im->git_dir_latest(\$max) or return;
- my $from = $reindex->{from};
+ my $from = $opt->{reindex}->{from};
my $mm = $ibx->mm;
my $v = PublicInbox::Search::SCHEMA_VERSION();
foreach my $i (0..$max) {
@@ -238,14 +237,14 @@ sub prepare_run {
sub check_compact () { runnable_or_die($XAPIAN_COMPACT) }
sub _run {
- my ($ibx, $cb, $opt, $reindex) = @_;
+ my ($ibx, $cb, $opt) = @_;
my $im = $ibx->importer(0);
$im->lock_acquire;
my ($tmp, $queue) = prepare_run($ibx, $opt);
# fine-grained locking if we prepare for reindex
if (!$opt->{-coarse_lock}) {
- prepare_reindex($ibx, $im, $reindex);
+ prepare_reindex($ibx, $im, $opt);
$im->lock_release;
}
@@ -262,19 +261,18 @@ sub run {
defined(my $dir = $ibx->{inboxdir}) or die "no inboxdir defined\n";
-d $dir or die "inboxdir=$dir does not exist\n";
check_compact() if $opt->{compact} && $ibx->search;
- my $reindex; # v1:{ from => $x40 }, v2:{ from => [ $x40, $x40, .. ] } }
if (!$opt->{-coarse_lock}) {
- $reindex = $opt->{reindex} = { # per-epoch ranges for v2
- from => $ibx->version == 1 ? '' : [],
- };
+ # per-epoch ranges for v2
+ # v1:{ from => $OID }, v2:{ from => [ $OID, $OID, $OID ] } }
+ $opt->{reindex} = { from => $ibx->version == 1 ? '' : [] };
PublicInbox::SearchIdx::load_xapian_writable();
}
local %SIG = %SIG;
setup_signals();
$ibx->umask_prepare;
- $ibx->with_umask(\&_run, $ibx, $cb, $opt, $reindex);
+ $ibx->with_umask(\&_run, $ibx, $cb, $opt);
}
sub cpdb_retryable ($$) {
next prev parent reply other threads:[~2020-08-20 20:24 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-20 20:24 [PATCH 00/23] indexing: --skip-docdata + speedups Eric Wong
2020-08-20 20:24 ` [PATCH 01/23] doc: note -compact and -xcpdb are rarely used Eric Wong
2020-08-20 20:24 ` [PATCH 02/23] admin: progress shows the inbox being indexed Eric Wong
2020-08-20 20:24 ` [PATCH 03/23] compact: support --help/-? and perform lazy loading Eric Wong
2020-08-20 20:24 ` [PATCH 04/23] init: support --help and -? Eric Wong
2020-08-20 20:24 ` [PATCH 05/23] init: support --newsgroup option Eric Wong
2020-08-20 21:10 ` Eric Wong
2020-08-20 20:24 ` [PATCH 06/23] init: drop -N alias for --skip-artnum Eric Wong
2020-08-20 20:24 ` [PATCH 07/23] search: v2: ensure shards are numerically sorted Eric Wong
2020-08-20 20:24 ` Eric Wong [this message]
2020-08-20 20:24 ` [PATCH 09/23] www: reduce long-lived PublicInbox::Search references Eric Wong
2020-08-20 20:24 ` [PATCH 10/23] search: improve comments around constants Eric Wong
2020-08-20 20:24 ` [PATCH 11/23] search: export mdocid subroutine Eric Wong
2020-08-20 20:24 ` [PATCH 12/23] searchquery: split off from searchview Eric Wong
2020-08-20 20:24 ` [PATCH 13/23] search: make qparse_new an internal function Eric Wong
2020-08-20 20:24 ` [PATCH 14/23] smsg: reduce utf8::decode call sites Eric Wong
2020-08-20 20:24 ` [PATCH 15/23] searchview: use over.sqlite3 instead of Xapian docdata Eric Wong
2020-08-20 20:24 ` [PATCH 16/23] searchview: speed up search summary by ~10% Eric Wong
2020-08-20 20:24 ` [PATCH 17/23] searchview: convert nested and Atom display to over.sqlite3 Eric Wong
2020-08-20 20:24 ` [PATCH 18/23] extmsg: avoid using Xapian docdata Eric Wong
2020-08-20 20:24 ` [PATCH 19/23] mbox: avoid Xapian docdata in search results Eric Wong
2020-08-20 20:24 ` [PATCH 20/23] smsg: remove from_mitem Eric Wong
2020-08-20 20:24 ` [PATCH 21/23] t/nntpd-v2: set PI_TEST_VERSION=2 properly Eric Wong
2020-08-20 20:24 ` [PATCH 22/23] init+index: support --skip-docdata for Xapian Eric Wong
2020-08-20 20:24 ` [PATCH 23/23] search: add mset_to_artnums method Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://public-inbox.org/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200820202457.21042-9-e@yhbt.net \
--to=e@yhbt.net \
--cc=meta@public-inbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).