From 97a9139a75729c41bb91acd711e8b088e6379600 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 30 Oct 2021 08:11:41 +0000 Subject: lei_to_mail: limit workers for text, reply and v2 outputs "text" and "reply" outputs are intended for the pager, so parallelizing them is a waste of resources. v2 has shards, of course, so parallelizing writes to it is also a waste since the deduplication work is a bit more complex. --- lib/PublicInbox/LeiQuery.pm | 2 +- lib/PublicInbox/LeiToMail.pm | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox') diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm index 3d0e5b14..352ee601 100644 --- a/lib/PublicInbox/LeiQuery.pm +++ b/lib/PublicInbox/LeiQuery.pm @@ -37,7 +37,7 @@ sub _start_query { # used by "lei q" and "lei up" $lms->lms_write_prepare->lms_pause; # just create } } - $l2m and $l2m->{-wq_nr_workers} = $mj // + $l2m and $l2m->{-wq_nr_workers} //= $mj // int($nproc * 0.75 + 0.5); # keep some CPU for git # descending docid order is cheapest, MUA controls sorting order diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index 83f58a29..90db30e5 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -415,11 +415,13 @@ sub new { require PublicInbox::LeiViewText; $lei->{lvt} = PublicInbox::LeiViewText->new($lei, $fmt); $self->{base_type} = 'text'; + $self->{-wq_nr_workers} = 1; # for pager @conflict = qw(mua save); } elsif ($fmt eq 'v2') { die "--dedupe=oid and v2 are incompatible\n" if ($lei->{opt}->{dedupe}//'') eq 'oid'; $self->{base_type} = 'v2'; + $self->{-wq_nr_workers} = 1; # v2 has shards $lei->{opt}->{save} = \1; $dst = $lei->{ovv}->{dst} = $lei->abs_path($dst); @conflict = qw(mua sort); -- cgit v1.2.3-24-ge0c7