diff options
author | Eric Wong <e@80x24.org> | 2021-10-12 11:47:03 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-10-12 21:46:35 +0000 |
commit | 2a3c8d7a2c40ad9424db10d68470d8bb120bddf9 (patch) | |
tree | 11b2a2d1566a06555f255f960f9ea7b07eeccfc5 /lib/PublicInbox/Search.pm | |
parent | 212578b82ad3cb28b2d18f36c656be56a27fd5bc (diff) | |
download | public-inbox-2a3c8d7a2c40ad9424db10d68470d8bb120bddf9.tar.gz |
The cost of opening a Xapian DB (even with shards) isn't high, so save some FDs and just close it. We hit Xapian far less than over.sqlite3 and we discard the MSet ASAP even when streaming large responses. This simplifies our code a bit and hopefully helps reduce fragmentation by increasing mortality of late allocations.
Diffstat (limited to 'lib/PublicInbox/Search.pm')
-rw-r--r-- | lib/PublicInbox/Search.pm | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index dd6d3710..f0e7ed0c 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -243,20 +243,6 @@ sub xdb ($) { }; } -# returns true if a future rescan is desired -sub cleanup_shards { - my ($self) = @_; - return unless exists($self->{xdb}); - my $xpfx = $self->{xpfx}; - return reopen($self) if $xpfx =~ m!/xapian[0-9]+\z!; # true - opendir(my $dh, $xpfx) or return warn("$xpfx gone: $!\n"); # true - my $nr = grep(/\A[0-9]+\z/, readdir($dh)) or - return warn("$xpfx has no shards\n"); # true - return reopen($self) if $nr == ($self->{nshard} // -1); - delete @$self{qw(xdb qp)}; - undef; -} - sub new { my ($class, $ibx) = @_; ref $ibx or die "BUG: expected PublicInbox::Inbox object: $ibx"; |