From 3bf9e1e4d8e5a84a0d8c733faf49555aa84379aa Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 2 Sep 2020 11:04:21 +0000 Subject: v2writable: reuse read-only shard counting code We'll also fix the read-only code to ensure we notice missing Xapian shards, since gaps would throw off our expectation that Xapian document IDs and NNTP article numbers are interchangeable. --- lib/PublicInbox/V2Writable.pm | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) (limited to 'lib/PublicInbox/V2Writable.pm') diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index c8334645..a1f6048f 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -65,28 +65,11 @@ sub nproc_shards ($) { sub count_shards ($) { my ($self) = @_; - my $n = 0; - my $xpfx = $self->{xpfx}; - # always load existing shards in case core count changes: # Also, shard count may change while -watch is running - # due to "xcpdb --reshard" - if (-d $xpfx) { - my $XapianDatabase; - foreach my $shard (<$xpfx/*>) { - -d $shard && $shard =~ m!/[0-9]+\z! or next; - $XapianDatabase //= do { - require PublicInbox::Search; - PublicInbox::Search::load_xapian(); - $PublicInbox::Search::X{Database}; - }; - eval { - $XapianDatabase->new($shard)->close; - $n++; - }; - } - } - $n; + my $srch = $self->{ibx}->search or return 0; + delete $self->{ibx}->{search}; + $srch->{nshard} // 0 } sub new { -- cgit v1.2.3-24-ge0c7