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-ASN: 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 242901F453 for ; Sun, 27 Jan 2019 04:03:42 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 00/14] convert solver to use pi-httpd.async Date: Sun, 27 Jan 2019 04:03:27 +0000 Message-Id: <20190127040341.26107-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Much of the groundwork for this was laid in the now-abandoned "repobrowse" branch. The goal was to improves fairness as we no longer wait synchronously on git (apply|update-index|ls-files) processes and can requests for other clients. The end result was slightly (2-3%?) slower with all the callbacks, but reducing "git apply" invocations by relying on pathnames (instead of stdin) made the end result ~20% faster for a large (64) patch series. Email::Simple (via Email::MIME/PublicInbox::MIME) remains a performance bottleneck, as it does a lot of unnecessary header parsing and hash-table populating we don't care about; but I'm not sure if I'll have time to address that. Eric Wong (14): httpd/async: remove needless sysread wrapper qspawn: implement psgi_return and use it for githttpbackend qspawn|getlinebody: support streaming filters qspawn|httpd/async: improve and fix out-of-date comments httpd/async: stop running command if client disconnects qspawn: implement psgi_qx t/qspawn.t: psgi_qx stderr test view: swap CRLF for LF in HTML output solver: rewrite to use Qspawn->psgi_qx and pi-httpd.async solver: hold patches in temporary directory solver: reduce "git apply" invocations qspawn: decode $? for user-friendliness viewvcs: do not show final error message twice solver: crank up max patches to 9999 lib/PublicInbox/GetlineBody.pm | 16 +- lib/PublicInbox/Git.pm | 2 +- lib/PublicInbox/GitHTTPBackend.pm | 64 +--- lib/PublicInbox/HTTPD/Async.pm | 27 +- lib/PublicInbox/Qspawn.pm | 143 +++++++- lib/PublicInbox/SolverGit.pm | 532 +++++++++++++++++------------- lib/PublicInbox/View.pm | 4 + lib/PublicInbox/ViewVCS.pm | 50 ++- t/qspawn.t | 12 +- t/solver_git.t | 22 +- 10 files changed, 543 insertions(+), 329 deletions(-) -- EW