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 348C61F55B; Tue, 19 May 2020 09:00:00 +0000 (UTC) Date: Tue, 19 May 2020 09:00:00 +0000 From: Eric Wong To: meta@public-inbox.org Subject: MUA and client-side limits w.r.t. IMAP Message-ID: <20200519090000.GA24273@dcvr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline List-Id: TL;DR: is 50K messages a reasonable IMAP folder size? So far, the IMAP daemon code shares quite a bit of data and logic with the NNTP code. NNTP article numbers are reusable as IMAP UIDs; and for small inboxes, newsgroups can be an IMAP folder. But that only works for small inboxes... One major difference between IMAP and NNTP is every NNTP client I've looked at (even going back to the 90s) has default limits on the number of messages it can fetch for a newsgroup. I'm not sure if any IMAP client has NNTP-like limits by default. Instead, they'll attempt to fetch headers for every single message in that IMAP folder. Bigger public-inboxes have 300-400K of messages per epoch. I don't think most MUAs will be happy with even that, not to mention monster multi-epoch inboxes like LKML. So I'm thinking 10K-60K is more reasonable these days, at least on the hardware I have and TokyoCabinet header caching in mutt. 10K is a pretty small window for lists like LKML; and 50K only takes a few seconds for my old Centrino laptop over IMAP. All messages can still be exposed via extra folders with numbers tacked on: * default, same as newsgroup name, messages "expire" inbox.comp.version-control.git => most recent 50K messages * messages never expire from these IMAP folders: inbox.comp.version-control.git.400000 => 350,001..400K inbox.comp.version-control.git.350000 => 300,001..350K inbox.comp.version-control.git.300000 => 250,001..300K ... I don't want to expose a configuration knob, here; since users can get thrown off and have to resync if the admin changes the window size. I don't know about MUAs other than mutt; but is 50K a reasonable folder size? Also, IMAP search may be able to cross into the older ranges, not sure, yet...