Putting Xapian work into subprocesses will allow us to implement proper timeouts and ultra-expensive queries without harming unrelated queries.
It's on by default right now, but I think it's better to keep it off by default to avoid tripping up existing process monitoring tools. Eric Wong (5): searchview: get rid of unused adump callback arg xap_helper.h: remove _SC_NPROCESSORS_ONLN default xap_helper: drop terms+data from `mset' command mbox: hoist out refill_result_ids www: wire up search to use async xap_helper MANIFEST | 2 + lib/PublicInbox/Isearch.pm | 50 +++++++----- lib/PublicInbox/Mbox.pm | 127 ++++++++++++++++------------- lib/PublicInbox/MboxGz.pm | 4 +- lib/PublicInbox/Search.pm | 53 +++++++++++- lib/PublicInbox/SearchView.pm | 58 +++++++------ lib/PublicInbox/XapClient.pm | 1 + lib/PublicInbox/XapHelper.pm | 16 +--- lib/PublicInbox/XhcMset.pm | 51 ++++++++++++ lib/PublicInbox/XhcMsetIterator.pm | 20 +++++ lib/PublicInbox/xap_helper.h | 17 ++-- lib/PublicInbox/xh_mset.h | 57 ++----------- t/cindex.t | 23 +++--- t/xap_helper.t | 29 +++---- 14 files changed, 302 insertions(+), 206 deletions(-) create mode 100644 lib/PublicInbox/XhcMset.pm create mode 100644 lib/PublicInbox/XhcMsetIterator.pm
