From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id AAAED1F4B4 for ; Wed, 9 Sep 2020 06:26:18 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 00/11] httpd: further reduce event loop monopolization Date: Wed, 9 Sep 2020 06:26:07 +0000 Message-Id: <20200909062618.5940-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: A couple more things to mitigate the effects of slow storage with many inboxes. Mostly solver-related, and still more to come... (Hoping the electrical grid stays up and dust bunny removal solved overheating problems). Eric Wong (11): xt/solver: test with public-inbox-httpd, too solver: drop warnings, modernize use v5.10.1, use SEEK_SET use "\&" where possible when referring to subroutines www: manifest.js.gz generation no longer hogs event loop config: flatten each_inbox and iterate_start args config: split out iterator into separate object t/cgi.t: show stderr on failures extmsg: prevent cross-inbox matches from hogging event loop wwwlisting: avoid hogging event loop solver: check one git coderepo and inbox at a time solver: break apart inbox blob retrieval MANIFEST | 2 + lib/PublicInbox/Cgit.pm | 5 +- lib/PublicInbox/Config.pm | 22 +-- lib/PublicInbox/ConfigIter.pm | 40 +++++ lib/PublicInbox/ExtMsg.pm | 102 ++++++++---- lib/PublicInbox/IMAPD.pm | 6 +- lib/PublicInbox/Inbox.pm | 2 +- lib/PublicInbox/ManifestJsGz.pm | 135 ++++++++++++++++ lib/PublicInbox/SolverGit.pm | 190 +++++++++++++--------- lib/PublicInbox/TestCommon.pm | 4 +- lib/PublicInbox/WWW.pm | 21 +-- lib/PublicInbox/Watch.pm | 13 +- lib/PublicInbox/WwwListing.pm | 279 ++++++++------------------------ t/cgi.t | 2 +- t/replace.t | 8 +- t/solver_git.t | 7 +- t/www_listing.t | 7 +- xt/msgtime_cmp.t | 2 +- xt/solver.t | 31 +++- 19 files changed, 499 insertions(+), 379 deletions(-) create mode 100644 lib/PublicInbox/ConfigIter.pm create mode 100644 lib/PublicInbox/ManifestJsGz.pm