user/dev discussion of public-inbox itself
 help / color / Atom feed
From: Eric Wong <e@yhbt.net>
To: meta@public-inbox.org
Subject: [PATCH 2/9] v2writable: nproc_shards: subtract 1 from given value
Date: Sun,  2 Feb 2020 06:52:15 +0000
Message-ID: <20200202065222.14966-3-e@yhbt.net> (raw)
In-Reply-To: <20200202065222.14966-1-e@yhbt.net>

This is to be consistent with the `nproc(1)' code path.  It also
quiets down a warning from Admin when "-j $JOBS" is specified,
since the master process (which distributes work to shards and
handles OverIdx and Msgmap) is considered a job on its own.
---
 lib/PublicInbox/V2Writable.pm | 9 ++-------
 t/xcpdb-reshard.t             | 2 +-
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index 8ad71b54..37d27302 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -34,13 +34,8 @@ our $NPROC_MAX_DEFAULT = 4;
 
 sub nproc_shards ($) {
 	my ($creat_opt) = @_;
-	if (ref($creat_opt) eq 'HASH') {
-		if (defined(my $n = $creat_opt->{nproc})) {
-			return $n
-		}
-	}
-
-	my $n = $ENV{NPROC};
+	my $n = $creat_opt->{nproc} if ref($creat_opt) eq 'HASH';
+	$n //= $ENV{NPROC};
 	if (!$n) {
 		chomp($n = `nproc 2>/dev/null`);
 		# assume 2 cores if GNU nproc(1) is not available
diff --git a/t/xcpdb-reshard.t b/t/xcpdb-reshard.t
index 9f0034f1..5fce5ead 100644
--- a/t/xcpdb-reshard.t
+++ b/t/xcpdb-reshard.t
@@ -40,7 +40,7 @@ for my $i (1..$ndoc) {
 }
 $im->done;
 my @shards = grep(m!/\d+\z!, glob("$ibx->{inboxdir}/xap*/*"));
-is(scalar(@shards), $nproc, 'got expected shards');
+is(scalar(@shards), $nproc - 1, 'got expected shards');
 my $orig = $ibx->over->query_xover(1, $ndoc);
 my %nums = map {; "$_->{num}" => 1 } @$orig;
 

  parent reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-02  6:52 [PATCH 0/9] convert: more fixes and tests Eric Wong
2020-02-02  6:52 ` [PATCH 1/9] t/multi-mid.t: extra test for -convert highwater mark Eric Wong
2020-02-02  6:52 ` Eric Wong [this message]
2020-02-02  6:52 ` [PATCH 3/9] v2writable: do not clobber {shards} or {parallel} if unset Eric Wong
2020-02-02  6:52 ` [PATCH 4/9] convert: remove unused variables capturing :from Eric Wong
2020-02-02  6:52 ` [PATCH 5/9] searchidxshard: rely on autoflush instead of ->flush Eric Wong
2020-02-02  6:52 ` [PATCH 6/9] convert: shift @ARGV explicitly Eric Wong
2020-02-02  6:52 ` [PATCH 7/9] convert: fix --no-index switch Eric Wong
2020-02-02  6:52 ` [PATCH 8/9] doc: -convert: document switches Eric Wong
2020-02-02  6:52 ` [PATCH 9/9] v2writable: more ways to detect online CPU count 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=20200202065222.14966-3-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

user/dev discussion of public-inbox itself

Archives are clonable:
	git clone --mirror https://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
	nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.io/gmane.mail.public-inbox.general

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git