Received: by ns.secondary.com (8.9.3/8.9.3) id GAA24340 for ietf-imapext-bks; Wed, 30 Aug 2000 06:10:55 -0700 (PDT) Received: from ns1.syntegra.com (ns1.syntegra.com [150.143.16.2]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA24335 for ; Wed, 30 Aug 2000 06:10:53 -0700 (PDT) Received: from [129.179.161.11] by ns1.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:11:23 -0500 Received: from csol1.udev.cdc.com by cdsms.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:11:21 -0500 Received: from isdn-220-114.arh-dialin.cdc.com by csol1.udev.cdc.com with ESMTP; Wed, 30 Aug 2000 08:11:19 -0500 Date: Wed, 30 Aug 2000 09:12:03 -0400 From: "warren.l.brown@syntegra.com" Subject: typos in draft-ietf-imapext-thread-02.txt To: "MRC@CAC.Washington.EDU" cc: "ietf-imapext@imc.org" Message-Id: Content-Language: en-USA MIME-Version: 1.0 Content-Type: MULTIPART/ALTERNATIVE; DIFFERENCES=Content-Language; boundary="1373580-20395-967641124=:-1025299" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --1373580-20395-967641124=:-1025299 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7bit Content-Language: en-USA more or more -> one or more to determining -> to determine inconsistant -> inconsistent --1373580-20395-967641124=:-1025299 Content-Type: TEXT/html; CHARSET=US-ASCII Content-ID: 0 Content-Language: en-USA more or more -> one or more
to determining -> to determine
inconsistant -> inconsistent
--1373580-20395-967641124=:-1025299-- Received: by ns.secondary.com (8.9.3/8.9.3) id GAA23950 for ietf-imapext-bks; Wed, 30 Aug 2000 06:05:03 -0700 (PDT) Received: from ns1.syntegra.com (ns1.syntegra.com [150.143.16.2]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA23945 for ; Wed, 30 Aug 2000 06:05:02 -0700 (PDT) Received: from [129.179.161.11] by ns1.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:05:32 -0500 Received: from csol1.udev.cdc.com by cdsms.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:05:31 -0500 Received: from isdn-220-114.arh-dialin.cdc.com by csol1.udev.cdc.com with ESMTP; Wed, 30 Aug 2000 08:05:29 -0500 Date: Wed, 30 Aug 2000 09:06:12 -0400 From: "warren.l.brown@syntegra.com" Subject: typos in draft-ietf-imapext-sort-05.txt To: "MRC@CAC.Washington.EDU" cc: "ietf-imapext@imc.org" Message-Id: Content-Language: en-USA MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: tenatively -> tentatively determing -> determine inconsistant -> inconsistent Received: by ns.secondary.com (8.9.3/8.9.3) id DAA16013 for ietf-imapext-bks; Wed, 30 Aug 2000 03:49:15 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id DAA16006 for ; Wed, 30 Aug 2000 03:49:14 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA23534; Wed, 30 Aug 2000 06:50:14 -0400 (EDT) Message-Id: <200008301050.GAA23534@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-02.txt Date: Wed, 30 Aug 2000 06:50:14 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-02.txt Pages : 12 Date : 29-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-02.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-02.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-02.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000829112114.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-02.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-02.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000829112114.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id DAA15999 for ietf-imapext-bks; Wed, 30 Aug 2000 03:49:11 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id DAA15993 for ; Wed, 30 Aug 2000 03:49:09 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA23520; Wed, 30 Aug 2000 06:50:09 -0400 (EDT) Message-Id: <200008301050.GAA23520@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-05.txt Date: Wed, 30 Aug 2000 06:50:09 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-05.txt Pages : 10 Date : 29-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-05.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-05.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-05.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000829112105.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-05.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-05.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000829112105.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id BAA02889 for ietf-imapext-bks; Wed, 30 Aug 2000 01:12:18 -0700 (PDT) Received: from sendflowersamerica.com ([206.168.43.194]) by ns.secondary.com (8.9.3/8.9.3) with SMTP id BAA01618; Wed, 30 Aug 2000 01:00:01 -0700 (PDT) From: sfaquestions@sendflowersamerica.com Subject: FlowerFunds - Fund Raising Program Date: Wed, 30 Aug 2000 01:32:17 Message-Id: <620.108063.29555@sendflowersamerica.com> Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: SendFlowersAmerica is proud to introduce FlowerFunds-- This unique new concept will provide an income flow for your organization for years to come. Your organization is invited to explore the possibilities of participating in FlowerFunds. $FlowerFunds is an individualized fund raising program for non-profit organizations and schools. $FlowerFunds are cash rebates that are paid to your organization each and every time an order is placed by your members and supporters. $The best part is that it costs your organization nothing to participate!! How it works: 1. When your members and supporters order flowers or gifts through sendflowersamerica they determine the price they want to pay; be it $30, $40, $50 or $1000. Since your members and supporters determine the price, they all can participate in this program. 2. Your organization receives 20% of the purchase price of the order. Say a husband buys his wife a $50 bouquet. Your organization will receive a $10 cash rebate. Nice. This program never ends. Each and every time there is an order placed by your memebers and supporters, your organization will receive the 20% cash rebate. That's a lot of FlowerFunds, and your organization stands to benefit from a findraiser unlike any other fundraiser. For more information call 1 800 SEND 123 or http://www.sendflowersamerica.com Imagine earning money for your organization by making someone smile :-) Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id MAA27280 for ietf-imapext-bks; Fri, 25 Aug 2000 12:06:20 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA27276 for ; Fri, 25 Aug 2000 12:06:19 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA02540 for ; Fri, 25 Aug 2000 12:06:55 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA29223 for ; Fri, 25 Aug 2000 12:06:50 -0700 (PDT) Date: Fri, 25 Aug 2000 12:05:10 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Summary: SORT/THREAD/VIEW debate Message-ID: <2632257.3176193910@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: These are my opinions on where we stand on the SORT/THREAD/VIEW debate. Please reply to this message if you think I've missed a substantial bullet item or substantially misworded a bullet item. Please use another thread for issue debate. Note that I hold strong opinions on some (but not all) of the points of contention. Thus it is quite likely that my perception of the opposite position is biased or not accurate, so please help me fix such mistakes. In some places I have added points (to both sides) which weren't expressed, but I think should have been. I suspect there is WG rough concensus on the following: * It must be possible for a server to advertise and support the deployed SORT and THREAD extensions in addition to whatever we standardize. * The deployed SORT and THREAD extensions offer a significant improvement over the base spec for online clients. * The current VIEW draft does not work well with a caching online client if there is a desire to preserve the cache across VIEW changes. * It is desirable for a caching online client to preserve the cache across VIEW changes. * Semi dynamic updates of a client view are desirable. * Fully dynamic updates of a client view are desirable. * We need to be able to extend SORT with additional keys. * THREAD should be extensible since there are at least two useful algorithms. * Windowing introduces significant complexity. * Having two ways to get SORT/THREAD positions is undesirable. The points of contention are: (1) Whether it is desirable to standardize a one-shot SORT/THREAD facility given a persistant SORT/THREAD facility will also be standardized. Pro position: * Pine needs this * one-shot SORT/THREAD are already deployed * Persistant result facility untested and will delay SORT/THREAD Con position: * Protocol is simpler without one-shot facility * Removes potential to have two ways to do same/similar functions * No scenario provided that demonstrates one-shot is useful when persistant is available. (2) Desire for scalability on the basis of mailbox size (Windowing). Pro position: * Need to design for clients with limited/expensive bandwidth * Need to design for clients with limited RAM * Need to plan for the future * Desire to use mailboxes for mailing list archives * Desire to use mailboxes for storage and virtual views for navigation Con position: * Users can't handle large mailboxes * Most software today can't handle large mailboxes * The complexity that windowing adds is not worth the benefit (3) Desire to collapse related functionality into a minimal number of capability items. Pro Position: * Simplifies client UI * Simplifies code paths and protocol testing * Encourages deployment of related functionality as a unit so servers support a broader range of clients initially, rather than deploying a partial solution (with workarounds in some clients) and waiting for market to force support for more complete solution. * Avoids two ways of doing same/similar things * Reluctance to standardize what is believed to be a partial solution. Con Position: * SORT/THREAD already deployed separately * Want to separate functions which might not win in marketplace from those which will so the end result is simpler. * Modularity of design should be expressed in capability list - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id IAA19369 for ietf-imapext-bks; Fri, 25 Aug 2000 08:57:59 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA19364 for ; Fri, 25 Aug 2000 08:57:57 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7PFwTg17494; Fri, 25 Aug 2000 11:58:29 -0400 Date: Fri, 25 Aug 2000 11:58:29 -0400 Message-Id: <200008251558.e7PFwTg17494@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Lawrence Greenfield Cc: Chris Newman , IMAP Extensions WG In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT) From: Mark Crispin On Thu, 24 Aug 2000 22:40:06 -0400, Lawrence Greenfield wrote: > I'm sorry, this example is somewhat bogus. > Are you trying to simulate a client with a cache or without a cache? Let me explain. Sorry, still confused! It is unlikely that a client will ever do "VIEW FETCH 1:20 ENVELOPE" because then the client would be obliged to re-fetch the same data every time the VIEW is redefined. Instead of caching by VIEW indexes, since these are even more ephemeral than message sequence numbers, the client will cache either by message sequence number or by UID. So, the client has some some (or all) message data cached, indexed either by message sequence number or by UID. After doing the VIEW SET SORT command, it now wants to know which view indexes translate to which message sequence numbers or UIDs, so it can do cache lookup to get the data, and only do a FETCH via IMAP if the data isn't in the cache. I chose my example carefully. Notice that I broke out the cases: no cache, a partial cache, and a full cache. So I guess at this point I'm somewhat confused (as usual!). What is the point of the VIEW/SORT/THREAD extensions? Below I outline some things that we might be trying to improve and some naive guesses about the impact of the various extensions on them. I guess if someone can clue me in with what we're trying to accomplish, I'd understand this latest discussion much better. What's the important items: 1) minimize bandwidth consumed 2) maximize responsiveness to the user 3) minimize CPU time for the client 4) minimize memory footprint for a client 5) increase server scalability Of the proposals so far, (1) may be best achieved by SORT with built-in narrowing, as suggested by Chris, for clients with a (partial) cache. But I'm not sure. Under most networks that exist today, (2) is best done by a pipelined VIEW/FETCH like I showed, since latency dominates in small fetches like a FETCH 1:20. (This is also true for a client with a partial cache if there's a single message in 1:20 that it doesn't have cached.) I do not believe that (3) is worth optimizing for. (Yes, CPU consumes battery. However, most of the people I know who worry about CPU/battery tradeoffs are doing video decoding via wireless etc, not e-mail reading.) (4) is best achieved by VIEW by a client with NO cache. I guess VIEW/SORT/THREAD can help with (5) in cases where clients would download absurd amounts of data (100,000 messages or whatever) when they really only want 20 and then they'll go away. Larry Received: by ns.secondary.com (8.9.3/8.9.3) id BAA15639 for ietf-imapext-bks; Fri, 25 Aug 2000 01:10:13 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id BAA15634 for ; Fri, 25 Aug 2000 01:10:11 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id BAA16379; Fri, 25 Aug 2000 01:10:44 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (rfort@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id BAA04844; Fri, 25 Aug 2000 01:10:44 -0700 Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Lawrence Greenfield cc: IMAP Extensions WG , Chris Newman In-Reply-To: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 22:40:06 -0400, Lawrence Greenfield wrote: > I'm sorry, this example is somewhat bogus. > Are you trying to simulate a client with a cache or without a cache? Let me explain. It is unlikely that a client will ever do "VIEW FETCH 1:20 ENVELOPE" because then the client would be obliged to re-fetch the same data every time the VIEW is redefined. Instead of caching by VIEW indexes, since these are even more ephemeral than message sequence numbers, the client will cache either by message sequence number or by UID. So, the client has some some (or all) message data cached, indexed either by message sequence number or by UID. After doing the VIEW SET SORT command, it now wants to know which view indexes translate to which message sequence numbers or UIDs, so it can do cache lookup to get the data, and only do a FETCH via IMAP if the data isn't in the cache. Received: by ns.secondary.com (8.9.3/8.9.3) id AAA14817 for ietf-imapext-bks; Fri, 25 Aug 2000 00:54:50 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id AAA14812 for ; Fri, 25 Aug 2000 00:54:49 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id AAA32699; Fri, 25 Aug 2000 00:55:23 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (neil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id AAA04560; Fri, 25 Aug 2000 00:55:23 -0700 Date: Fri, 25 Aug 2000 00:35:01 -0700 (PDT) From: Mark Crispin Subject: re: Modularity vs. Protocol options To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <984785.3176137441@localhost> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 20:24:01 -0700, Chris Newman wrote: > For example, SORT and THREAD are both functions to order the mailbox. If > one can occur without the other, then the client's ordering user interface > has to deal with 4 cases (neither, both, SORT only, THREAD only). The > entire ordering interface has to be disabled or simulated in the first > case. In the latter three, the ordering interface is enabled but in the > latter two there are sub-cases which must be disabled or simulated. My > conclusion is that, if possible, we should advertise both SORT and THREAD > with the same capability (ORDER?) as that reduces client complexity. This presupposes that all forms of "ordering" can be coalesced into a single immutable extension. But THREAD, by definition, is extensible; new algorithms can be added (and will be added). Threading is also fundamentally different from sorting; sorts are flat whereas threads have structure. I do not believe that, even with SORT2, there will ever be a closed-end, comprehensive set of "orderings" in IMAP that preclude any client-based implementation of ordering. Clients will always have their own ideas of how to "order"; furthermore, clients will probably always lead IMAP in having new "orderings" first. Therefore, different levels of server-based ordering technology will always exist. No purpose is served by the incompatibility of a change to "ORDER". A better argument would be for SORT2 to take an equals sign, ala THREAD, so that new SORT criteria could be added without having to create SORT3. That is, instead of "SORT2", have "SORT=ANSWERED SORT=BCC SORT=DELETED ..." The current set of SORT criteria would remain mandatory, preserving compatibility. This also sets a precedent for extending SEARCH, e.g. SEARCH=REGEX. There's significant potential here. > Is there any deployed server software which implements SORT and not > _THREAD_ (or vice versa) and considers that a useful case to preserve in > future versions? Some servers only have THREAD=ORDEREDSUBJECT; others have both this and THREAD=REFERENCES. Although the trend is for universal implementation of THREAD=REFERENCES, we can not assume that it will end there. Received: by ns.secondary.com (8.9.3/8.9.3) id VAA29866 for ietf-imapext-bks; Thu, 24 Aug 2000 21:08:20 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id VAA29862 for ; Thu, 24 Aug 2000 21:08:18 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id VAA02573; Thu, 24 Aug 2000 21:08:52 -0700 (PDT) Received: from [192.129.100.100] (dsl198-113.Eng.Sun.COM [129.146.198.113]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id VAA22914; Thu, 24 Aug 2000 21:08:51 -0700 (PDT) Date: Thu, 24 Aug 2000 21:07:15 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: re: Simplified VIEW strawman Message-ID: <1140799.3176140035@[192.129.100.100]> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 24, 2000 19:09 -0700 Mark Crispin wrote: > On Thu, 24 Aug 2000 18:12:39 -0700, Chris Newman wrote: >> While I'm less concerned than Mark about the difference in "blather" >> since a good compression layer would largely fix that among many other >> "blather" problems in IMAP/822/MIME/content > > The same argument ("it's just a compression problem") can be used against > your claims of "non-scalability" of the existing top-level SORT and > THREAD. Not true. Compression algorithms eliminate repetative information, thus: * blather blather 5 blather * blather blather 4 blather * blather blather 8 blather * blather blather 10 blather * blather blather 30 blather * blather blather 3 blather * blather blather 7 blather is equivalent to: * gunk 5 4 8 10 30 3 7 when compression is used (presuming the blather is the same on all lines). But most compression algorithms won't help significantly with a list of ASCII numbers (beyond the wasted bits in ASCII), and none will change a O(n) quantity of data into a O(1) quantity of data. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id UAA27047 for ietf-imapext-bks; Thu, 24 Aug 2000 20:28:41 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA27043 for ; Thu, 24 Aug 2000 20:28:40 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id UAA09411; Thu, 24 Aug 2000 20:29:13 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (rambo@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id UAA29450; Thu, 24 Aug 2000 20:29:13 -0700 Date: Thu, 24 Aug 2000 19:09:05 -0700 (PDT) From: Mark Crispin Subject: re: Simplified VIEW strawman To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <629316.3176129559@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 18:12:39 -0700, Chris Newman wrote: > While I'm less concerned than Mark about the difference in "blather" since > a good compression layer would largely fix that among many other "blather" > problems in IMAP/822/MIME/content The same argument ("it's just a compression problem") can be used against your claims of "non-scalability" of the existing top-level SORT and THREAD. Off hand, your proposed changes to VIEW commands and responses appear OK, with the important caveat that SORT and THREAD remain as top level commands. It is essential that it be possible to do a SORT or THREAD independent of the view. This is not "two ways of doing the same thing". One command returns sorted or threaded search results without altering the view. The other command sets the view and returns some subset of the results. Both are useful. Pine is likely to use both. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id UAA26905 for ietf-imapext-bks; Thu, 24 Aug 2000 20:26:31 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA26901 for ; Thu, 24 Aug 2000 20:26:30 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id UAA26573; Thu, 24 Aug 2000 20:27:04 -0700 (PDT) Received: from [192.129.100.100] (dsl198-113.Eng.Sun.COM [129.146.198.113]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id UAA21928; Thu, 24 Aug 2000 20:27:03 -0700 (PDT) Date: Thu, 24 Aug 2000 20:24:01 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: re: Modularity vs. Protocol options Message-ID: <984785.3176137441@localhost> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: When two extensions are completely separate, their impact on client complexity is separate. The more two extensions interact or perform similar functions, the more likely the client complexity they generate will be multiplicative. For example, SORT and THREAD are both functions to order the mailbox. If one can occur without the other, then the client's ordering user interface has to deal with 4 cases (neither, both, SORT only, THREAD only). The entire ordering interface has to be disabled or simulated in the first case. In the latter three, the ordering interface is enabled but in the latter two there are sub-cases which must be disabled or simulated. My conclusion is that, if possible, we should advertise both SORT and THREAD with the same capability (ORDER?) as that reduces client complexity. Is there any deployed server software which implements SORT and not _THREAD_ (or vice versa) and considers that a useful case to preserve in future versions? --On Thursday, August 24, 2000 16:50 -0700 Mark Crispin wrote: > Nevertheless, > SORT2 is not a separate "option", unless you consider RFC 1064, RFC 1176, > IMAP2bis, RFC 1730, and RFC 2060 as separate "options" of IMAP. Those are separate versions which is slightly better than separate options since older ones are likely to be deprecated. At this point it's quite practical to release IMAP software which only supports RFC 2060, which is a good thing since supporting maximum interoperability with all 5 variants is *a lot* of extra complexity. > What is more important is that these extensions are individually > additive, in keeping with the IMAP extensions model. Each extension > indicates the availability of a single feature. If the server does not > offer that feature, then the client is must do without it. >From a server's viewpoint, perhaps. From a GUI client viewpoint the extensions under discussion in this WG are options which interact in increasingly complex ways. That's one of the major reasons there is an imapext rather than a bunch of individual submissions. We need to minimize the complexity of the interactions between SORT/THREAD/VIEW/ACL/ANNOTATE and we can't push any of them forward until we've done a cursory evaluation of the interactions and determined we can deal. > If IMAPEXT were to accept Newman's argument, then it tear up all > extensions and disband, on the grounds that IMAP is impossible due to its > 2^19 "options", not to mention the 2^9 (or so) combinations of ways to > log in to the server. This is clearly absurd. I never said all extensions combine with multiplicative compexlity; only those with related functionality. The reason there is a WG is because we have rough concensus that the functionality added by the extensions we're considering is likely to be worth the cost of the complexity they introduce. But that does not justify introducing more complexity than necessary. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id TAA20499 for ietf-imapext-bks; Thu, 24 Aug 2000 19:39:40 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id TAA20488 for ; Thu, 24 Aug 2000 19:39:38 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7P2e6g17020; Thu, 24 Aug 2000 22:40:06 -0400 Date: Thu, 24 Aug 2000 22:40:06 -0400 Message-Id: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Mark Crispin Cc: IMAP Extensions WG , Chris Newman In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT) From: Mark Crispin [...] By comparison, embedding THREAD and SORT into view, when output sorting is not desired, adds orders of magnitude more IMAP protocol blather. Compare: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! with a2 VIEW SET SORT (SUBJECT) UTF-8 ALL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") * 1 FETCH (VIEW 10) * 2 FETCH (VIEW 9) * 3 FETCH (VIEW 8) * 4 FETCH (VIEW 7) * 5 FETCH (VIEW 6) * 6 FETCH (VIEW 5) * 7 FETCH (VIEW 4) * 8 FETCH (VIEW 3) * 9 FETCH (VIEW 2) * 10 FETCH (VIEW 1) a3 OK done! I'm sorry, this example is somewhat bogus. Are you trying to simulate a client with a cache or without a cache? Without a cache (and with a virtual window size of 5, say), the protocol goes more like this: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! a11 FETCH 10,9,8,7,6 (ENVELOPE) * 10 FETCH (ENVELOPE ...) * 9 FETCH (ENVELOPE ...) * 8 FETCH (ENVELOPE ...) * 7 FETCH (ENVELOPE ...) * 6 FETCH (ENVELOPE ...) a11 OK done! versus: a2 VIEW SET SORT (SUBJECT) UTF-8 AL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:5 (ENVELOPE) * 10 FETCH (VIEW 1 ENVELOPE ...) * 9 FETCH (VIEW 2 ENVELOPE ...) * 8 FETCH (VIEW 3 ENVELOPE ...) * 7 FETCH (VIEW 4 ENVELOPE ...) * 6 FETCH (VIEW 5 ENVELOPE ...) a3 OK done! (Note that, of the two sessions above, the second can be pipelined and the first can't.) With a partial cache, it's not clear to me what the protocol looks like---I'm certainly unfamiliar enough with VIEW, and I suppose it depends whether latency, bandwidth, or some other quantity is your primary concern. With a full disconnected cache, there is no protocol---the client already has the necessary data and does the work. Larry Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id SAA11446 for ietf-imapext-bks; Thu, 24 Aug 2000 18:13:54 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA11438 for ; Thu, 24 Aug 2000 18:13:47 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id SAA04851 for ; Thu, 24 Aug 2000 18:14:19 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id SAA17985 for ; Thu, 24 Aug 2000 18:14:18 -0700 (PDT) Date: Thu, 24 Aug 2000 18:12:39 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Simplified VIEW strawman Message-ID: <629316.3176129559@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I've been putting some thought into VIEW and the interaction with the current SORT/THREAD. I'd like to draw people's attention to Mark's comment here: --On Wednesday, August 23, 2000 22:15 -0700 Mark Crispin wrote: > By comparison, embedding THREAD and SORT into view, when output sorting > is not desired, adds orders of magnitude more IMAP protocol blather. > Compare: a1 SORT (SUBJECT) UTF-8 ALL > * SORT 10 9 8 7 6 5 4 3 2 1 > a1 OK done! > with > a2 VIEW SET SORT (SUBJECT) UTF-8 ALL > * 10 EXISTS 10 > a2 OK done! > a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") > * 1 FETCH (VIEW 10) > * 2 FETCH (VIEW 9) > * 3 FETCH (VIEW 8) > * 4 FETCH (VIEW 7) > * 5 FETCH (VIEW 6) > * 6 FETCH (VIEW 5) > * 7 FETCH (VIEW 4) > * 8 FETCH (VIEW 3) > * 9 FETCH (VIEW 2) > * 10 FETCH (VIEW 1) > a3 OK done! > > You are not going to convince me that the world is a better place for > having the latter forced upon those of us who are using the former with > great success today. While I'm less concerned than Mark about the difference in "blather" since a good compression layer would largely fix that among many other "blather" problems in IMAP/822/MIME/content, I'm much more concerned that there are two ways to do the same thing. If we standardize both of them, we have made a serious design error. The WG meeting rough concensus was to standardize *only* the latter model. But perhaps we could standardize only the former model after fixing the bugs/adding the missing features? Here's a simpler VIEW strawman based on the following assumptions: (1) caching across view changes is important -- this assumption largely breaks the current VIEW proposal. I'm told by client authors it is important so I'll trust that for now. The direct implication is that view position numbers should not be treated as a first-class key. (2) current SORT/THREAD result syntax should be preserved (3) Semi/full dynamic updates important (4) Scalability/windowing is important (5) K.I.S.S. I've broken this into functional groups -- SET, SEMI, FULL and WINDOW: ------ VIEW When no VIEW is active, a VIEW command must include "SET" or a "BAD" will result. VIEW with no arguments cancels the current view. VIEW with "SET" subcommand changes the view and returns WINDOW/SORT/THREAD results. VIEW without "SET" command applies to last view. The following VIEW modifiers are allowed: SET SEARCH/SORT/THREAD ... This changes the current VIEW and returns an untagged VIEW response (superset of SORT/THREAD/SEARCH response syntax). Must be at end of line. SEMI This causes the client to be notified of basic changes. A position of "0" in MOVE indicates outside the view. A newpos of "0" won't happen with SEMI -- messages don't leave the view except by expunge. * 2000 EXISTS tag VIEW SEMI SET SORT ... rest of sort command ... * VIEW ... ... * MOVE (oldpos newpos) (oldpos newpos) ... * 1 EXPUNGE * 2005 EXISTS (VIEW ...) The (VIEW ...) modifier to EXISTS result lists view positions of new messages. At this point I prefer extending EXPUNGE/EXISTS to keep the related data together. FULL Same as SEMI, but a newpos of "0" is permitted. WINDOW This returns a subrange of the result set from SEARCH/SORT/THREAD, and is necessary for scalability on the basis of mailbox size. tag VIEW WINDOW SORT ... rest of subcommand * VIEW WINDOW ... subset of SORT results tag VIEW WINDOW THREAD ... rest of subcommand * VIEW WINDOW (+n seqno seqno ...) seqno seqno (seqno seqno +n) tag VIEW WINDOW + THREAD ... rest of subcommand * VIEW WINDOW (+n seqno seqno ...) seqno (seqno +n) (seqno seqno +n) tag VIEW WINDOW (returns window data for new range from previous VIEW) If is true, results for all sub-threads will be included ( is ignored with SORT). Otherwise only results for the top level will be included. The + form is needed for expanded view (descend true) where the correct end can't be determined in advance by a client. The "+n" indicates that there were n messages in that sub-thread outside the WINDOW. ------ - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA09459 for ietf-imapext-bks; Thu, 24 Aug 2000 17:11:46 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (warner@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA09455 for ; Thu, 24 Aug 2000 17:11:45 -0700 (PDT) Date: Thu, 24 Aug 2000 16:50:33 -0700 (PDT) From: Mark Crispin Subject: re: Modularity vs. Protocol options To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <302707.3176124129@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 16:42:09 -0700, Chris Newman wrote: > If we follow the course Mark is promoting, we could end up with: > SORT > THREAD > SORT2 (with missing keys added and possible i18n fixes), > VIEW > That's 4 options, and since VIEW interacts with the other three, multiply > the above complexity list by at least 7. There are no "4 options", much less a multiplier factor of 7. Whether or not SORT is extended to SORT2 remains unsettled. Nevertheless, SORT2 is not a separate "option", unless you consider RFC 1064, RFC 1176, IMAP2bis, RFC 1730, and RFC 2060 as separate "options" of IMAP. SORT2 is nothing more than an extension. What is more important is that these extensions are individually additive, in keeping with the IMAP extensions model. Each extension indicates the availability of a single feature. If the server does not offer that feature, then the client is must do without it. If IMAPEXT were to accept Newman's argument, then it tear up all extensions and disband, on the grounds that IMAP is impossible due to its 2^19 "options", not to mention the 2^9 (or so) combinations of ways to log in to the server. This is clearly absurd. Received: by ns.secondary.com (8.9.3/8.9.3) id QAA09180 for ietf-imapext-bks; Thu, 24 Aug 2000 16:43:17 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA09176 for ; Thu, 24 Aug 2000 16:43:16 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA12689 for ; Thu, 24 Aug 2000 16:43:49 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA13370 for ; Thu, 24 Aug 2000 16:43:48 -0700 (PDT) Date: Thu, 24 Aug 2000 16:42:09 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Modularity vs. Protocol options Message-ID: <302707.3176124129@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I'm a huge supporter of modular design. Indeed, one reason I dislike object oriented languages is that a well designed modular program will often have several modules which operate on the same object, and most object oriented languages discourage or prohibit such good design. However, large numbers of protocol options are bad, and doubly so when they interact. Furthermore, two different ways to do the same thing is also bad. Every "option" results in the following complexity in every client: 1. a test for the presence of the option 2. facility to enable/disable all GUI elements impacted by that option 3. Adding conditionals to any commands which that option introduces 4. Adding an additional code path (with associated maintenance and bugs) if the option offers a performance enhancement. 5. If the option is sufficiently important to users, include all the code necessary to simulate the behavior of the option when it's not present. 6. Interop and regression tests related to the option must be done once against servers without it and again with the option. When options interact, then the complexity tends to be multiplicative. If we follow the course Mark is promoting, we could end up with: SORT THREAD SORT2 (with missing keys added and possible i18n fixes), VIEW That's 4 options, and since VIEW interacts with the other three, multiply the above complexity list by at least 7. IMHO, we should have a single extension name (how about "ORDER=thread-alg,...") which includes as much of the SORT/THREAD/VIEW functionality as we believe is ready for the standards track. I fully encourage implementors to write their code with the modular design that Mark explained, but there's no reason that design must be reflected in the capability list, and many reasons why it shouldn't. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id OAA05698 for ietf-imapext-bks; Thu, 24 Aug 2000 14:10:48 -0700 (PDT) Received: from DF-INET-1.dogfoodinternet.com (df-inet1.exchange.microsoft.com [131.107.8.8]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA05692 for ; Thu, 24 Aug 2000 14:10:46 -0700 (PDT) Received: from df-virus2.platinum.corp.microsoft.com ([172.30.236.33]) by DF-INET-1.dogfoodinternet.com with Microsoft SMTPSVC(5.0.2195.1600); Thu, 24 Aug 2000 14:08:02 -0700 Received: from 172.30.236.11 by df-virus2.platinum.corp.microsoft.com (InterScan E-Mail VirusWall NT); Thu, 24 Aug 2000 14:08:28 -0700 (Pacific Daylight Time) Received: from DF-SPOT.platinum.corp.microsoft.com ([172.30.236.99]) by yuri.dns.microsoft.com with Microsoft SMTPSVC(5.0.2195.2023); Thu, 24 Aug 2000 14:08:31 -0700 x-mimeole: Produced By Microsoft Exchange V6.0.4417.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C00E0F.74DDFDCB" Subject: RE: Microsoft Canards Date: Thu, 24 Aug 2000 14:08:31 -0700 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Microsoft Canards Thread-Index: AcAN83Q7OqTT2Rc9RIC9hs0EgxIsSgAGw/Zg From: "Larry Osterman" To: "Chris Newman" , "Mark Crispin" Cc: "IMAP Extensions WG" X-OriginalArrivalTime: 24 Aug 2000 21:08:31.0944 (UTC) FILETIME=[752B3C80:01C00E0F] Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is a multi-part message in MIME format. ------_=_NextPart_001_01C00E0F.74DDFDCB Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I understand that, it's just that that particular quote is one of my hot buttons - so very few people remember what the market was like back in 1982 (heck, there may be people reading this that weren't ALIVE back in 1982!) that it's easy to say "hee hee - wasn't Bill Gates (Mr. Bloatware himself) so stupid back then" - and that's how urban legends like this one get started. People forget that the original PC was a 4.77mhz 8088 with 64K of RAM, and that the base machine came with no floppy and two monitor choices: a display adapter that was capable of 640x480 in 4 colors, and 320x240 in 16 colors, and a black&white text-only display adapter. That was it, nothing else. It wasn't until '83 that PC's started coming with a floppy drive as a standard option. And in the world of the original PC, a 640K wasn't such a limitation - after all, a meg of RAM cost over a thousand dollars back then... Anyway, as I said - it's one of my personal hot buttons, so..... Larry Osterman Sent from larryo-laptop.dns.microsoft.com running NT5 and Outlook 2000 and Exchange Platinum! Please notify the sender of any difficulties. > -----Original Message----- > From: Chris Newman [mailto:cnewman@innosoft.com] > Sent: Thursday, August 24, 2000 10:46 AM > To: Larry Osterman; Mark Crispin > Cc: IMAP Extensions WG > Subject: Re: Microsoft Canards >=20 >=20 > Very sorry, I must have misremembered the quote attribution. =20 > The point I=20 > was trying to make is that smart and famous people often fail=20 > to predict=20 > the requirements for the future. Thus designing for=20 > scalability rather=20 > than for "what works today" is usually well worth the effort. >=20 > - Chris >=20 >=20 ------_=_NextPart_001_01C00E0F.74DDFDCB Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RE: Microsoft Canards

I understand that, it's just that that particular = quote is one of my hot buttons - so very few people remember what the = market was like back in 1982 (heck, there may be people reading this = that weren't ALIVE back in 1982!) that it's easy to say "hee hee - = wasn't Bill Gates (Mr. Bloatware himself) so stupid back then" - = and that's how urban legends like this one get started.

People forget that the original PC was a 4.77mhz 8088 = with 64K of RAM, and that the base machine came with no floppy and two = monitor choices: a display adapter that was capable of 640x480 in 4 = colors, and 320x240 in 16 colors, and a black&white text-only = display adapter.  That was it, nothing else.  It wasn't until = '83 that PC's started coming with a floppy drive as a standard = option.  And in the world of the original PC, a 640K wasn't such a = limitation - after all, a meg of RAM cost over a thousand dollars back = then...

Anyway, as I said - it's one of my personal hot = buttons, so.....


Larry Osterman
Sent from larryo-laptop.dns.microsoft.com running NT5 = and Outlook 2000 and Exchange Platinum!  Please notify the sender = of any difficulties.



> -----Original Message-----
> From: Chris Newman [mailto:cnewman@innosoft.com]
> Sent: Thursday, August 24, 2000 10:46 AM
> To: Larry Osterman; Mark Crispin
> Cc: IMAP Extensions WG
> Subject: Re: Microsoft Canards
>
>
> Very sorry, I must have misremembered the quote = attribution. 
> The point I
> was trying to make is that smart and famous = people often fail
> to predict
> the requirements for the future.  Thus = designing for
> scalability rather
> than for "what works today" is usually = well worth the effort.
>
>       =         - Chris
>
>

------_=_NextPart_001_01C00E0F.74DDFDCB-- Received: by ns.secondary.com (8.9.3/8.9.3) id LAA03331 for ietf-imapext-bks; Thu, 24 Aug 2000 11:22:24 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (smj@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA03327 for ; Thu, 24 Aug 2000 11:22:22 -0700 (PDT) Date: Thu, 24 Aug 2000 10:49:51 -0700 (PDT) From: Mark Crispin Subject: Re: Microsoft Canards To: Chris Newman cc: Larry Osterman , IMAP Extensions WG In-Reply-To: <646118.3176102782@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 10:46:22 -0700, Chris Newman wrote: > Very sorry, I must have misremembered the quote attribution. It was another individual, at a computer manufacturer which no longer exists, and the quote was that nobody would need a personal computer. The remnants of that company are now owned by a PC maker. > The point I > was trying to make is that smart and famous people often fail to predict > the requirements for the future. Thus designing for scalability rather > than for "what works today" is usually well worth the effort. Nevertheless, there is such a thing as extremism and pulling numbers out of nowhere with no supporting evidence. The history of Internet protocols is littered with good ideas that were irrepairably damaged by excessive zeal and rash speculation of future needs. How many people on this list actually have tested their implementations with 100,000 message mailboxes? I have, and have demonstrated that it works. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id KAA03006 for ietf-imapext-bks; Thu, 24 Aug 2000 10:59:05 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA03002 for ; Thu, 24 Aug 2000 10:59:03 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7OHx5A25973; Thu, 24 Aug 2000 13:59:05 -0400 Message-ID: <39A56142.35BF4557@oceana.com> Date: Thu, 24 Aug 2000 13:54:10 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG CC: Mark Crispin Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Mark Crispin wrote: [...] > The current top-level SORT and THREAD always have had the capability to limit > the messages which are sorted (input subsetting). Input subsetting is what > controls the size of the "hunk". If that's what you're concerned about, you > belong on the top-level SORT/THREAD bandwagon; your problems are solved and > you might as well start writing code. > > This is not what VIEW does. VIEW does output subsetting; that is, subsetting > of the results of SEARCH/SORT/THREAD for transmission to the client. The > complete results are maintained on the server, so that the client can get > other subsets later on. > > Output subsetting happens after all the sorting is completed, since it is on > the results of the sort. You can't subset the output without first sorting > all candidate messages. You have no way of knowing, prior to sorting, which > messages will be in a particular subset of the results. > > Here's how they interoperate: > INPUT OPTIONAL OUTPUT > SUBSETTING -> ORDERING -> SUBSETTING > (SEARCH) (SORT/THREAD) (VIEW) > > Note that the ordering step is optional; VIEW SEARCH is an example of doing > output subsetting directly on input subsetting. > > The only thing mandatory is input subsetting. You have to do this, even if > it's just to say "all messages in the mailbox". Fortunately, it's a low-cost > operation to do it. > > The entire point of VIEW is to preserve the results of the "hunk" (the results > of input subsetting, optionally modified by ordering) so that the server can > get at pieces of the "hunk" readily to answer subsequent client requests > without having to do the underlying input subsetting and ordering over again. > > Another important aspect of VIEW is to announce to the client the impact of > new messages on the view. This also presupposes the server preserving the > "hunk". This is by far the best description that I've seen of how SEARCH/SORT/THREAD/VIEW are designed to operate. It has helped solidify my understanding of the various components and I think it can help others. Perhaps some of this text should make its way into the appropriate document(s)? > Embedding THREAD and SORT into VIEW creates a gigantic monolith that contains > the disjoint functionalities of sorting, threading, and windowing, each piece > of which depends upon all the others. It is impossible to extend any of these > functionalities without changing the entire monolith. This is not modular. > > The SEARCH specification does input subsetting. This is leveraged by the > current SORT/THREAD specifications, which orders the SEARCH results. > SORT/THREAD do not incorporate searching; instead, they use the searching > mechanism provided by SEARCH. An extension to SEARCH automatically extends > SORT/THREAD. A change to SORT/THREAD does not alter SEARCH. This is modular. > > The current VIEW specification does output subsetting. VIEW does not > incorporte ordering; instead, it uses the ordering functionality provided by > SORT/THREAD. An extension to SORT/THREAD automatically extends VIEW. A > change to VIEW does not alter SORT/THREAD or SEARCH. This is modular. Exactly. The point is that any component should be upgradable without affecting the other components. If scalability issues (real, not perceived) with SORT/THREAD arise, then they can be addressed independently of VIEW. That being said, I *might* be inclined to concede that toplevel SORT/THREAD might not scale well enough to handle 100,000 messages mailboxes on a handheld. However I would assert that toplevel SORT/THREAD is the wrong tool for the job. This application would be better served by VIEW. MORE IMPORTANTLY, I would also assert that VIEW is the wrong tool for a 10 message mailbox. The overhead on the server for setting up and maintaining the view is unnecessary, not to mention the wasted network bandwidth caused by the FETCHes. Toplevel SORT/THREAD is the right tool for this job. The mailbox size at which one solution becomes better than the other can be debated, but I think BOTH have their place and the choice of when to use them should be left to the client vendor. The modular approach suggested by Mark (separate SORT, THREAD and VIEW) allows both of these solutions to peacefully coexist which ultimately benefits everyone. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id KAA02915 for ietf-imapext-bks; Thu, 24 Aug 2000 10:47:25 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA02910 for ; Thu, 24 Aug 2000 10:47:24 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id KAA09780; Thu, 24 Aug 2000 10:47:56 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id KAA17201; Thu, 24 Aug 2000 10:47:55 -0700 (PDT) Date: Thu, 24 Aug 2000 10:46:22 -0700 From: Chris Newman To: Larry Osterman , Mark Crispin cc: IMAP Extensions WG Subject: Re: Microsoft Canards Message-ID: <646118.3176102782@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Very sorry, I must have misremembered the quote attribution. The point I was trying to make is that smart and famous people often fail to predict the requirements for the future. Thus designing for scalability rather than for "what works today" is usually well worth the effort. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id CAA08747 for ietf-imapext-bks; Thu, 24 Aug 2000 02:14:45 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (resp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id CAA08743 for ; Thu, 24 Aug 2000 02:14:43 -0700 (PDT) Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Pete Resnick cc: Chris Newman , IMAP Extensions WG In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 00:07:27 -0500, Pete Resnick wrote: > So, I expect that in the near future (if I am > provided with the tools), I will certainly have a single 100,000 > message mailbox in IMAP. We are certainly moving in that direction > with local-storage clients. There's a lot implied by "if I am provided with the tools". As matters stand, you'll have a hard time today finding a tool that handles a 1000 message mailbox well. > On a > locally indexed mailbox of 100,000 messages, I could write the code > to do this with ease. I cannot do this (in any efficient way) with > the current tools available to me in IMAP. Do you have that code for a locally index mailbox of 100,000 messages today? What makes you conclude that embedding SORT and THREAD into VIEW will make it possible to do it in IMAP? > The point you miss is that until servers implement it, client writers > (who are clearly foaming at the mouth for this technology) are stuck. This is all the more reason not to delay it any further by delaying proven solutions in favor of something that doesn't even have a prototype implementation yet. > There are comparatively few servers implementations out there > compared to client implementations, and even less of us are in your > enviable position of having control of the source code of one of the > widest deployed implementations of each. The server implementations which support SORT and THREAD are the most widely deployed servers. The same is true for the client. It is exceedingly simple to implement SORT and THREAD in the client. The only thing hard at the server end is to implement THREAD=REFERENCES. > SORT/THREAD will > be good enough for servers to provide most of the current crop of > clients (who are "grab all of the messages in this mailbox and > present them to the user" clients) with a "limping along" version of > these features, but will preclude certain kinds of clients from > getting implemented: The longer that "grab all the messages" clients > can limp along, the more likely the technology will become > entrenched, even if it is inferior. This argument doesn't wash. I doubt that any of the "grab all of the messages in this mailbox" clients would use SORT/THREAD. There's no point to doing so; it's downloaded all of the messages and can do whatever sorting or threading it wants locally. I've traced what these clients do in their use of IMAP; they are POP clients that babble IMAP. They don't even leverage the basic features of IMAP. I am not just a server implementor. I've written multiple independent client implementations. Most of the sophisticated IMAP clients use my code from the c-client library. I have some idea of how clients are written. > The corollary to the above scenario is that IMAP gets a bad wrap: In > a local-storage client, showing different views of huge mailstores is > fast and efficient; IMAP will be seen as slow and annoying by users > who want the same kinds of functionality on their IMAP clients. A different corollary is that I use a fast client which doesn't have these problems, and eschew slow clients that do things the wrong way. > We will get no operational experience with views. You won't get such operational experience by forcing it on people! Or, at least, you won't get the right kind of operational experience. > Agreed. That argues that we should tread carefully here and get > implementations of VIEW going so that we can figure out where the > warts are soon. Which in turn argues that top-level SORT and THREAD should progress. If you persist in the plan of forcing SORT/THREAD as part of VIEW, the result will be that VIEW will be rushed in order to address the pent-up demand for SORT and THREAD. The result will be a VIEW specification that sucks big time, and which we'll be stuck with forever because those pent-up implementations are now using it and will refuse to allow a change. My plan satisfies the pent-up demand for SORT/THREAD functionality now, and allows the careful design and implementation of VIEW. My plan does not preclude VIEW. My plan makes VIEW easier to design implement, by focusing its scope on the one specific task it needs to accomplish. My plan is supported by the people who have implemented SORT/THREAD today, and who not coincidentally are the only people who are doing anything about implementing VIEW today. Traditionally, working code has counted for more than votes in the IETF. I hope that has not changed. > Having a top-level SORT > or THREAD may be making the hunk so big as that it will not be > transferrable easily to another context; This is a red herring. Everything happens inside the server. If the server can handle the "hunk" in top-level SORT then it can handle it for VIEW. VIEW carves up the "hunks" prior to delivering them to the client. However, VIEW needs the entire "hunk" for scalability; otherwise there's no point to it. > it's always easier to > implement when you know that the context is "all of the messages in > this particular mailbox" instead of having to deal with a subsetting > operation in addition. Either I have horribly misinterpreted what you are saying, or you are horribly confused as to how SORT, THREAD, and VIEW work and interoperate. The current top-level SORT and THREAD always have had the capability to limit the messages which are sorted (input subsetting). Input subsetting is what controls the size of the "hunk". If that's what you're concerned about, you belong on the top-level SORT/THREAD bandwagon; your problems are solved and you might as well start writing code. This is not what VIEW does. VIEW does output subsetting; that is, subsetting of the results of SEARCH/SORT/THREAD for transmission to the client. The complete results are maintained on the server, so that the client can get other subsets later on. Output subsetting happens after all the sorting is completed, since it is on the results of the sort. You can't subset the output without first sorting all candidate messages. You have no way of knowing, prior to sorting, which messages will be in a particular subset of the results. Here's how they interoperate: INPUT OPTIONAL OUTPUT SUBSETTING -> ORDERING -> SUBSETTING (SEARCH) (SORT/THREAD) (VIEW) Note that the ordering step is optional; VIEW SEARCH is an example of doing output subsetting directly on input subsetting. The only thing mandatory is input subsetting. You have to do this, even if it's just to say "all messages in the mailbox". Fortunately, it's a low-cost operation to do it. The entire point of VIEW is to preserve the results of the "hunk" (the results of input subsetting, optionally modified by ordering) so that the server can get at pieces of the "hunk" readily to answer subsequent client requests without having to do the underlying input subsetting and ordering over again. Another important aspect of VIEW is to announce to the client the impact of new messages on the view. This also presupposes the server preserving the "hunk". > Embedding THREAD and SORT into VIEW guarantees > modularity since it must work in the context of both "the entire > mailbox" and "some subset of messages". This makes no sense either. The only thing that deals with the question of "the entire mailbox" vs. "some subset of messages" is input subsetting, which is already done as part of top-level SORT/THREAD. Embedding THREAD and SORT into VIEW forces all clients of sorting and threading to use VIEW, whether or not output subsetting is desired. Mandatory input subsetting in SORT and THREAD merely adds 10 octets (" UTF-8 ALL") to the command when that functionality is not desired; it otherwise has no ill effects. By comparison, embedding THREAD and SORT into view, when output sorting is not desired, adds orders of magnitude more IMAP protocol blather. Compare: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! with a2 VIEW SET SORT (SUBJECT) UTF-8 ALL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") * 1 FETCH (VIEW 10) * 2 FETCH (VIEW 9) * 3 FETCH (VIEW 8) * 4 FETCH (VIEW 7) * 5 FETCH (VIEW 6) * 6 FETCH (VIEW 5) * 7 FETCH (VIEW 4) * 8 FETCH (VIEW 3) * 9 FETCH (VIEW 2) * 10 FETCH (VIEW 1) a3 OK done! You are not going to convince me that the world is a better place for having the latter forced upon those of us who are using the former with great success today. It gets worse if you decide to use UIDs. We have UID SORT and UID THREAD. VIEW requires that you do "VIEW FETCH 1:* UID" or "UID FETCH 1:* VIEW" or perhaps "FETCH 1:* (VIEW UID)" (wow, three ways to do the same thing, a record!). Anyway, it will result in lots of * 1 FETCH (VIEW 10 UID 10230)" results. The benefit of using VIEW is exclusively in those cases where the more complex VIEW protocol to support the client's subset is smaller than what top-level will do to deliver the full "hunk". Such cases exist, and become more likely as the mailbox grows larger. But there are plenty of cases where VIEW is not the proper tool. There are more problems than just the excessive protocol blather caused by forcing the use of a subsetting mechanism when it isn't needed. There are also fundamental architectural problems. Embedding THREAD and SORT into VIEW creates a gigantic monolith that contains the disjoint functionalities of sorting, threading, and windowing, each piece of which depends upon all the others. It is impossible to extend any of these functionalities without changing the entire monolith. This is not modular. The SEARCH specification does input subsetting. This is leveraged by the current SORT/THREAD specifications, which orders the SEARCH results. SORT/THREAD do not incorporate searching; instead, they use the searching mechanism provided by SEARCH. An extension to SEARCH automatically extends SORT/THREAD. A change to SORT/THREAD does not alter SEARCH. This is modular. The current VIEW specification does output subsetting. VIEW does not incorporte ordering; instead, it uses the ordering functionality provided by SORT/THREAD. An extension to SORT/THREAD automatically extends VIEW. A change to VIEW does not alter SORT/THREAD or SEARCH. This is modular. > I do believe that standardizing THREAD > and SORT independent of VIEW does leave the possibility that we will > be stuck with a way of doing things that won't fit into VIEW. Please offer a specific scenario of how top-level SORT or THREAD, as currently specified, make it harder to implement VIEW. I believe that any such scenario is based upon a flawed understanding of how SORT, THREAD, and VIEW work. I am prepared to prove it. Top-level SORT and THREAD are proven designs, with production implementations in use for years. The alleged problems are disputed by all the implementors. VIEW (in any form) is not here yet. It is not likely to arrive for quite some time given the current discussion about redesigning it. There isn't even a prototype implementation of VIEW. Even though complete redesigns of VIEW have been proposed to address various problems (such as the chattiness noted above), none of those proposals require that SORT and THREAD be embedded in VIEW. There are no valid technical reasons given for why SORT and THREAD should be embedded in VIEW. There may be political reasons, but politics should not be the deciding factor. I understand that this is a complex topic, especially to folks who are reading the documents and haven't actually implemented any of this stuff. I'm asking you not to be taken in by specious claims that are in direct conflict with years of operational experience. The effects of a requirement that SORT and THREAD be embedded in VIEW are to delay standardized sorting and threading functionality to everybody for years to come, and to add needless complexity to client implementations that could otherwise use top-level SORT and THREAD. I don't think that you want this. If I can answer your questions or concerns about top-level SORT/THREAD satisfactorily, will you support their progress to standardization? Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id WAA28558 for ietf-imapext-bks; Wed, 23 Aug 2000 22:07:35 -0700 (PDT) Received: from episteme-software.com (resnick1.qualcomm.com [63.250.90.98]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id WAA28554 for ; Wed, 23 Aug 2000 22:07:31 -0700 (PDT) Received: from champdsl-25.mcleodusa.net (216.43.25.68) by episteme-software.com with ESMTP (Eudora Internet Mail Server 3.0.1); Thu, 24 Aug 2000 00:07:30 -0500 Mime-Version: 1.0 X-Sender: resnick@resnick1.qualcomm.com (Unverified) Message-Id: In-Reply-To: References: X-Mailer: Eudora [Macintosh version 5.0b10-09.00] Date: Thu, 24 Aug 2000 00:07:27 -0500 To: Mark Crispin From: Pete Resnick Subject: Re: SORT, THREAD, and VIEW Cc: Chris Newman , IMAP Extensions WG Content-Type: text/plain; charset="us-ascii" ; format="flowed" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: [Speaking as a group participant, not as chair.] On 8/23/00 at 2:00 PM -0700, Mark Crispin wrote: >The underlying assumptions in this claim are that: > 1) a user would want to deal browse through a flat object of 100,000 members > 2) the technology of palm devices will remain static > 3) the technology of radio will remain static. >None of these assumptions are valid. Assumption (1) is particularly absurd; >if it was valid, then why do we bother with non-INBOX mailboxes in IMAP! Nonsense. Assumption 1 is mistated. It is not that a user would want to browse through a flat object of 100,000 members; it is that a piece of client software would want to access a flat object of 100,000 members and allow the user to create different subsetted views of that data on different criteria. This is why you are seeing local-storage clients move toward either proprietary format databases or externally indexed collections of messages instead of flat text files: Users have so much mail now and so many ways of wanting to view it that permanently moving a single copy of a message into a particular file in a single hierarchical directory structure is not sufficient. One of those views of messages is likely to be "thread": I might want to have a virtual mailbox of a particular thread which might have 50 messages in it. Some number of those messages might also belong to a virtual mailbox of a particular annotation I have on a message. And it would be silly of me to split these messages up into different files; what I care about is the viewing criteria, not the underlying file storage mechanism. So, I expect that in the near future (if I am provided with the tools), I will certainly have a single 100,000 message mailbox in IMAP. We are certainly moving in that direction with local-storage clients. >Although the IMAP tools for browsing through mailboxes are good, there is a >messages/mailbox limit which has remained fairly constant even as IMAP servers >have become far more competant in handling large mailboxes. This limit is >established by the human user, not by hardware or impmentation. It is absolutely an implementation (or more to the point, a protocol) limitation. That I as a user can't deal with a serial list of 100,000 messages is not at issue. It's whether my client can present me with interesting subsets of such a mailbox in different views. On a locally indexed mailbox of 100,000 messages, I could write the code to do this with ease. I cannot do this (in any efficient way) with the current tools available to me in IMAP. >What harm does standardization SORT/THREAD do to you? > >There is no harm in standardizing SORT/THREAD to IMAP: > 1) if server-maintained views in IMAP are really important, then the VIEW > command will happen and be widely-implemented. The point you miss is that until servers implement it, client writers (who are clearly foaming at the mouth for this technology) are stuck. There are comparatively few servers implementations out there compared to client implementations, and even less of us are in your enviable position of having control of the source code of one of the widest deployed implementations of each. > 2) if SORT/THREAD are good enough, then the VIEW command won't happen or > won't be widely implemented. That's a misstatement of the claim. Point 2 is that SORT/THREAD will be good enough for servers to provide most of the current crop of clients (who are "grab all of the messages in this mailbox and present them to the user" clients) with a "limping along" version of these features, but will preclude certain kinds of clients from getting implemented: The longer that "grab all the messages" clients can limp along, the more likely the technology will become entrenched, even if it is inferior. We can all point to such experiences in this industry, both inside and outside of the IETF. The corollary to the above scenario is that IMAP gets a bad wrap: In a local-storage client, showing different views of huge mailstores is fast and efficient; IMAP will be seen as slow and annoying by users who want the same kinds of functionality on their IMAP clients. >Your concern seems to be that (2) would happen, and lead to a future crisis. >If future events (such a world where people routinely thread 100,000 message >mailboxes from a 4MB Palm via radio modem) demonstrate that server-maintained >views are essential, then nothing precludes the reintroduction of VIEW. The >benefit is that, this time, there would be actual operational experience. > >The result would be that the right specification of server-maintained views, >that addresses the actual needs, would happen. In the meantime, there would >be a great operational benefit from SORT/THREAD. It's a catch-22 though. We will not get to a time where people routinely thread 100,000 messages from a Palm because the technology is not available now on the server to make such a client even remotely plausible. What we will get is clients increasingly dependent on getting the entire list of messages from a mailbox because we continue to add commands which require that view of the world. We will get no operational experience with views. >The harm in adding ill-conceived server-based view functionality into >SORT/THREAD is that it is likely to be an albatross that sinks all sorting and >threading functionality. Agreed. That argues that we should tread carefully here and get implementations of VIEW going so that we can figure out where the warts are soon. >Some of the worst warts in Internet protocols were >attempts at solutions to problems that did not exist; when the real problem >was shown to exist, the earlier "solution" did not address it. The general problem, however, already does exist: We have a class of applications and functionality (small devices; "virtual mailbox" views) which cannot be addressed with current technology. We don't know for sure what the "real problem" is, though I think we have a pretty good idea. >It is for this reason that we use a modular design in which solutions address >a single problem. The claim is that you are not being modular enough. Modularity is not just about a single solution for a single problem; it's about making the hunks small enough so that a hunk can be reused and doesn't get specialized to solving a single problem only. Having a top-level SORT or THREAD may be making the hunk so big as that it will not be transferrable easily to another context; it's always easier to implement when you know that the context is "all of the messages in this particular mailbox" instead of having to deal with a subsetting operation in addition. Embedding THREAD and SORT into VIEW guarantees modularity since it must work in the context of both "the entire mailbox" and "some subset of messages". None of this is to say that we've got VIEW right. I don't know the answer to that question. But I do believe that standardizing THREAD and SORT independent of VIEW does leave the possibility that we will be stuck with a way of doing things that won't fit into VIEW. pr -- Pete Resnick Eudora Engineering - QUALCOMM Incorporated Ph: (217)337-6377 or (858)651-4478, Fax: (858)651-1102 Received: by ns.secondary.com (8.9.3/8.9.3) id UAA23098 for ietf-imapext-bks; Wed, 23 Aug 2000 20:22:43 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (pearl@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA23093 for ; Wed, 23 Aug 2000 20:22:42 -0700 (PDT) Date: Wed, 23 Aug 2000 20:16:21 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Hugh McIntyre cc: Chris Newman , IMAP Extensions WG In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 23 Aug 2000 20:13:38 -0700 (PDT), Hugh McIntyre wrote: > There is a rather important difference here though in that if I perform a > search on a mailbox I'm probably hoping to only get 10-20 matching messages > back. While if I perform a sort then I'm normally going to get the whole > mailbox. That all depends upon what you ask. Note that SORT is SEARCH with extra arguments. The client has the ability to decide what messages it wants to sort. Note that the bandwidth consumed by SORT results is modest for typical sized user mailboxes. SORT results for a 1000 message mailbox is just 3900 bytes. I have not encountered many IMAP clients that don't crash when a mailbox grows to more than a few hundred messages. Received: by ns.secondary.com (8.9.3/8.9.3) id UAA22998 for ietf-imapext-bks; Wed, 23 Aug 2000 20:13:20 -0700 (PDT) Received: from lukla.Sun.COM (lukla.Sun.COM [192.18.98.31]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA22994 for ; Wed, 23 Aug 2000 20:13:19 -0700 (PDT) Received: from engmail2.Eng.Sun.COM ([129.146.1.25]) by lukla.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id VAA05544; Wed, 23 Aug 2000 21:13:40 -0600 (MDT) Received: from frantic.Eng.Sun.COM (frantic.Eng.Sun.COM [129.144.137.28]) by engmail2.Eng.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id UAA11353; Wed, 23 Aug 2000 20:13:40 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by frantic.Eng.Sun.COM (8.9.3+Sun/8.8.8) with SMTP id UAA28674; Wed, 23 Aug 2000 20:13:39 -0700 (PDT) Date: Wed, 23 Aug 2000 20:13:38 -0700 (PDT) From: Hugh McIntyre Reply-To: Hugh McIntyre Subject: Re: SORT, THREAD, and VIEW To: Mark Crispin Cc: Chris Newman , IMAP Extensions WG In-Reply-To: "Your message with ID" Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: (Without making any comment either way on the rest of the argument): |> The SEARCH response, which has been in IMAP from inception, is dependent on |> the size of the mailbox in the way you contend. SORT is nothing more than a |> SEARCH with alternate ordering of the results. There is a rather important difference here though in that if I perform a search on a mailbox I'm probably hoping to only get 10-20 matching messages back. While if I perform a sort then I'm normally going to get the whole mailbox. Hugh. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id RAA17336 for ietf-imapext-bks; Wed, 23 Aug 2000 17:18:36 -0700 (PDT) Received: from DF-INET-1.dogfoodinternet.com (df-inet1.exchange.microsoft.com [131.107.8.8]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA17332 for ; Wed, 23 Aug 2000 17:18:34 -0700 (PDT) Received: from df-virus2.platinum.corp.microsoft.com ([172.30.236.33]) by DF-INET-1.dogfoodinternet.com with Microsoft SMTPSVC(5.0.2195.1600); Wed, 23 Aug 2000 17:17:54 -0700 Received: from 172.30.236.11 by df-virus2.platinum.corp.microsoft.com (InterScan E-Mail VirusWall NT); Wed, 23 Aug 2000 17:18:23 -0700 (Pacific Daylight Time) Received: from DF-SPOT.platinum.corp.microsoft.com ([172.30.236.99]) by yuri.dns.microsoft.com with Microsoft SMTPSVC(5.0.2195.2023); Wed, 23 Aug 2000 17:17:44 -0700 x-mimeole: Produced By Microsoft Exchange V6.0.4417.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C00D60.B7015F7C" Subject: Microsoft Canards Date: Wed, 23 Aug 2000 17:17:40 -0700 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: SORT, THREAD, and VIEW Thread-Index: AcANVyD8B9f/iOs5RziFVRhVSm004QACFZog From: "Larry Osterman" To: "Mark Crispin" , "Chris Newman" Cc: "IMAP Extensions WG" X-OriginalArrivalTime: 24 Aug 2000 00:17:44.0737 (UTC) FILETIME=[B98C3910:01C00D60] Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is a multi-part message in MIME format. ------_=_NextPart_001_01C00D60.B7015F7C Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable And I gotta step in here. >=20 > > I'll also note that when Bill Gates said that 640K was more than any > > computer would ever need, that it was certainly more than I=20 > could imagine > > needing at the time. >=20 > This is irrelevant. Personal computers bigger than 640K=20 > existed before the > founding of Microsoft. Timesharing systems with 10MB or more=20 > also existed at > that time. Bill Gates NEVER said any such thing. In fact, one of the first products for the PC that Microsoft produced (the Microsoft SmartCard(tm) was a RAM expansion board that would allow you to bump the PC's base memory from 256K to 768K (in its most maxed out configuration). It also added features like a battery backed clock, since IBM didn't add one until the PC/AT (ok, the PC/jr had a built-in clock, but who counts the PC/jr?). The decision to limit the user defined RAM on the original PC was an IBM hardware design decision - they needed to reserve a portion of the 1M physical address space (the 808x could only address 1M of memory) for memory mapped hardware and ROM units. They decided that 640K (10 times the default memory configuration of 64K) was more than enough memory for what was intended as a game machine - don't forget - the floppy drive was an ADD-ON for the original PC, and a hard disk (10 meg!) didn't come until the PC/XT in 1982 (when IBM bumped the default memory to 256K). And don't forget that it was Steve Jobs who said that a properly designed machine would NEVER require more than 128K of RAM. He also said that a properly designed machine wouldn't need a cooling fan, that's why the original MAC would melt down if you put a piece of paper on top of it. Larry Osterman Sent from larryo-laptop.dns.microsoft.com running NT5 and Outlook 2000 and Exchange Platinum! Please notify the sender of any difficulties. ------_=_NextPart_001_01C00D60.B7015F7C Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Microsoft Canards

And I gotta step in here.
>
> > I'll also note that when Bill Gates said = that 640K was more than any
> > computer would ever need, that it was = certainly more than I
> could imagine
> > needing at the time.
>
> This is irrelevant.  Personal computers = bigger than 640K
> existed before the
> founding of Microsoft.  Timesharing systems = with 10MB or more
> also existed at
> that time.

Bill Gates NEVER said any such thing.  In fact, = one of the first products for the PC that Microsoft produced (the = Microsoft SmartCard(tm) was a RAM expansion board that would allow you = to bump the PC's base memory from 256K to 768K (in its most maxed out = configuration).  It also added features like a battery backed = clock, since IBM didn't add one until the PC/AT (ok, the PC/jr had a = built-in clock, but who counts the PC/jr?).

The decision to limit the user defined RAM on the = original PC was an IBM hardware design decision - they needed to reserve = a portion of the 1M physical address space (the 808x could only address = 1M of memory) for memory mapped hardware and ROM units.  They = decided that 640K (10 times the default memory configuration of 64K) was = more than enough memory for what was intended as a game machine - don't = forget - the floppy drive was an ADD-ON for the original PC, and a hard = disk (10 meg!) didn't come until the PC/XT in 1982 (when IBM bumped the = default memory to 256K).

And don't forget that it was Steve Jobs who said that = a properly designed machine would NEVER require more than 128K of = RAM.  He also said that a properly designed machine wouldn't need a = cooling fan, that's why the original MAC would melt down if you put a = piece of paper on top of it.


Larry Osterman
Sent from larryo-laptop.dns.microsoft.com running NT5 = and Outlook 2000 and Exchange Platinum!  Please notify the sender = of any difficulties.

------_=_NextPart_001_01C00D60.B7015F7C-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id QAA15979 for ietf-imapext-bks; Wed, 23 Aug 2000 16:07:23 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (cecil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA15975 for ; Wed, 23 Aug 2000 16:07:22 -0700 (PDT) Date: Wed, 23 Aug 2000 14:00:01 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <5021320.3176025571@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 23 Aug 2000 13:19:31 -0700, Chris Newman wrote: > SORT and THREAD are blocked because there is a known scalability issue. There is no "known scalability issue". You claim that one exists, but that claim is not universally accepted. I reject it. At least three other individuals have rejected it. > A > couple years back we discussed a strawman to fix that problem without > waiting for VIEW: > SORT ... rest of sort command ... > * SORT ... subrange of sort response ... It was rejected for good reason. It is a solution to a problem that does not exist. It creates signficant new problems. It is inapplicable to THREAD (which is far more important than SORT). > With the possible exception of the EXPUNGE response, IMAP > network usage is not dependent on the size of the mailbox. The SEARCH response, which has been in IMAP from inception, is dependent on the size of the mailbox in the way you contend. SORT is nothing more than a SEARCH with alternate ordering of the results. > I'll also note that when Bill Gates said that 640K was more than any > computer would ever need, that it was certainly more than I could imagine > needing at the time. This is irrelevant. Personal computers bigger than 640K existed before the founding of Microsoft. Timesharing systems with 10MB or more also existed at that time. > Perhaps you're comfortable betting that 100,000 > messages is larger than a mailbox will ever be, but I'm not. We are not talking about a growth in technology, or in software. We are talking about what a human being will reasonably deal with as a single flat object. Specifically, you contend that a future user will have a flat mailbox containing 100,000 messages with no partitioning, and that such a user will use a current technology 4MB Palm device with a current technology radio modem to access it. The underlying assumptions in this claim are that: 1) a user would want to deal browse through a flat object of 100,000 members 2) the technology of palm devices will remain static 3) the technology of radio will remain static. None of these assumptions are valid. Assumption (1) is particularly absurd; if it was valid, then why do we bother with non-INBOX mailboxes in IMAP! Although the IMAP tools for browsing through mailboxes are good, there is a messages/mailbox limit which has remained fairly constant even as IMAP servers have become far more competant in handling large mailboxes. This limit is established by the human user, not by hardware or impmentation. Few IMAP clients work well beyond about 1000 messages; but I see the same limiting effects with clients that handle much larger mailboxes with aplomb. Our biggest mailbox users (a tiny minority) top off at about 5000-9000 messages per mailbox. I know from firsthand experience that Pine works well on a mailbox with 70,000 messages. The problem is that such a mailbox is overwhelming to the user. The user's first reaction is to break it up into more managable pieces. > So I will continue to actively oppose standardization of SORT/THREAD until > the defect is fixed either in the commands themselves or by combining them > with VIEW. What harm does standardization SORT/THREAD do to you? There is no harm in standardizing SORT/THREAD to IMAP: 1) if server-maintained views in IMAP are really important, then the VIEW command will happen and be widely-implemented. 2) if SORT/THREAD are good enough, then the VIEW command won't happen or won't be widely implemented. Either way, the problem is solved. Your concern seems to be that (2) would happen, and lead to a future crisis. If future events (such a world where people routinely thread 100,000 message mailboxes from a 4MB Palm via radio modem) demonstrate that server-maintained views are essential, then nothing precludes the reintroduction of VIEW. The benefit is that, this time, there would be actual operational experience. The result would be that the right specification of server-maintained views, that addresses the actual needs, would happen. In the meantime, there would be a great operational benefit from SORT/THREAD. I believe that there probably is a need for server-maintained views today. That is why I agreed to work on the VIEW specification. As specified today, SORT/THREAD do not preclude server-based views; and furthermore VIEW is designed with leverage of SORT/THREAD in mind. The harm in adding ill-conceived server-based view functionality into SORT/THREAD is that it is likely to be an albatross that sinks all sorting and threading functionality. Some of the worst warts in Internet protocols were attempts at solutions to problems that did not exist; when the real problem was shown to exist, the earlier "solution" did not address it. It is for this reason that we use a modular design in which solutions address a single problem. SORT/THREAD solve real problems that exist today. IMAP references threading is nearly two orders of magnitude more efficient than NNTP references threading. I have not heard any scalability arguments against standardization of the NNTP references threading mechanism. VIEW solves a problem that is speculated to exist. We don't know if the problem is real; nor do we have the operational experience to know that we have the right design for server-maintained views. Nevertheless, we are making a diligent effort at solving it, based upon a universal belief that server-maintained views are desirable. This effort would be enhanced by having the freedom to alter the VIEW design without impacting the existing, real-world, solutions to sorting and threading. It is bad design to bundle independent functionalities. It would be bad design to force server-maintained view functionality into the current independent search, sort, and thread functionalities. As long as these functionalities remain independent, we can tinker with server-maintained view functionality as needed without damaging the other functionalities. If, on the other hand, server-maintained view functionality is forced into the sorting and threading functionality, we are stuck with the implementation of that server-maintained view functionality. It will become impossible to change it in the future without also changing the sorting and threading functionality. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA13705 for ietf-imapext-bks; Wed, 23 Aug 2000 13:20:39 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA13701 for ; Wed, 23 Aug 2000 13:20:38 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA15190; Wed, 23 Aug 2000 13:21:05 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA23590; Wed, 23 Aug 2000 13:21:05 -0700 (PDT) Date: Wed, 23 Aug 2000 13:19:31 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <5021320.3176025571@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 19:38 -0700 Mark Crispin wrote: > This discussion has convinced me that the concept of VIEW is still > extremely immature and must undergo experimentation (at least one > implementation!) before it is advanced. The pitfalls are not well > understood. That is a reasonable conclusion from this discussion. > The need for careful experimentation and testing of VIEW should not be > used to block advancement of SORT and THREAD. SORT and THREAD are > proven, available today, and working in production code. SORT and THREAD > are much simpler and can be deployed now. SORT and THREAD do not > preclude a viable VIEW specification; in fact, it would be relatively > simple to add VIEW to an implementation wthat uses SORT and THREAD. SORT and THREAD are blocked because there is a known scalability issue. A couple years back we discussed a strawman to fix that problem without waiting for VIEW: SORT ... rest of sort command ... * SORT ... subrange of sort response ... If you wish them to be standardized without VIEW, then add that fix (adjusting syntax as you wish) and you increase the chances significantly. It moves the scalability problem from a protocol design error to a server implementation detail. > The claims of "non-scalability" are still theoretical in nature only. > They have not been experienced by the existing implementations of SORT > and THREAD. On the contrary; SORT and THREAD are proven major performance > winners. I have never denied that SORT and THREAD are an improvement over unextended IMAP. But just because something is an improvement does not mean it is ready for standardization. A proposed standard is required to have no known defects. With the possible exception of the EXPUNGE response, IMAP network usage is not dependent on the size of the mailbox. It is a defect of SORT/THREAD that the performance of those commands depends on the size of the mailbox. I'll also note that when Bill Gates said that 640K was more than any computer would ever need, that it was certainly more than I could imagine needing at the time. Perhaps you're comfortable betting that 100,000 messages is larger than a mailbox will ever be, but I'm not. Indeed I'd like to see IMAP used more for permanent list archives and I'm sure there will be many lists which get more than 100,000 posts in their lifetime. So I will continue to actively oppose standardization of SORT/THREAD until the defect is fixed either in the commands themselves or by combining them with VIEW. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id UAA17347 for ietf-imapext-bks; Fri, 18 Aug 2000 20:01:23 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (clam@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA17343 for ; Fri, 18 Aug 2000 20:01:22 -0700 (PDT) Date: Fri, 18 Aug 2000 19:38:37 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Lawrence Greenfield cc: Cyrus Daboo , Steve Hubert , IMAP Extensions WG In-Reply-To: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 21:54:59 -0400, Lawrence Greenfield wrote: > Is there another advantage of fetching the full map besides the > ability to retain cached information? In the case of threads, you may want to know about the overall thread tree instead of just a piece of it. It will be quite difficult for many forms of thread interface to do something reasonable with less than the full tree. I don't know of any client which has done it. This discussion has convinced me that the concept of VIEW is still extremely immature and must undergo experimentation (at least one implementation!) before it is advanced. The pitfalls are not well understood. People are talking about radical changes to the design to answer objections; radical enough changes to require a complete review from the bottom up. I see no purpose for these radical changes other than to prevent the advancement of any means of sorting or threading that doesn't use VIEW. This is a not a good way to design a protocol. It is an excellent way to make serious mistakes. The need for careful experimentation and testing of VIEW should not be used to block advancement of SORT and THREAD. SORT and THREAD are proven, available today, and working in production code. SORT and THREAD are much simpler and can be deployed now. SORT and THREAD do not preclude a viable VIEW specification; in fact, it would be relatively simple to add VIEW to an implementation wthat uses SORT and THREAD. The claims of "non-scalability" are still theoretical in nature only. They have not been experienced by the existing implementations of SORT and THREAD. On the contrary; SORT and THREAD are proven major performance winners. The other argument that I've heard against advancing SORT and THREAD is a vague fear that, if standardized, SORT and THREAD would prove good enough; so there would no longer be an impetus to do anything about VIEW. That is not a valid argument. It is instead an argument to abandon the current specification of VIEW and start over. Put another way: if VIEW is really that weak, it deserves to die. This will give impetus to anyone who still wants it to come up with a stronger specification that will succeed. Received: by ns.secondary.com (8.9.3/8.9.3) id SAA11304 for ietf-imapext-bks; Fri, 18 Aug 2000 18:55:05 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA11300 for ; Fri, 18 Aug 2000 18:55:04 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7J1sxg12190; Fri, 18 Aug 2000 21:55:00 -0400 Date: Fri, 18 Aug 2000 21:54:59 -0400 Message-Id: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Cyrus Daboo , Steve Hubert Cc: IMAP Extensions WG In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT) From: Steve Hubert cc: IMAP Extensions WG Organization: University of Washington; Computing and Communications If the VIEW matches all the messages you're back to the O(n) problem. I can see where VIEW would be beneficial if done in conjunction with a SEARCH which limits the number of messages in the VIEW, but with SORT we are interested in all n messages. Either that, or you've got to do something like I was talking about using uids to paste VIEWs together so that the user doesn't know they are viewing only a subset. No! This is the crucial distinction with VIEW. You _don't_ narrow your VIEW to just the messages that fit on one page. You just fetch the messages that would fit on one page. For example: a000 SELECT INBOX .... * 3450 EXISTS a000 OK a001 VIEW SET SORT (SUBJECT) US-ASCII ALL * 3450 EXISTS 3450 a001 OK a002 VIEW FETCH 1:20 (ENVELOPE) * 43 FETCH (VIEW 1 ENVELOPE ...) * 23 FETCH (VIEW 2 ENVELOPE ...) ... client displays to user first twenty in sorted view ... a002 OK ... user scrolls a003 VIEW FETCH 21:40 (ENVELOPE) ... client displays to user the second twenty in sorted view ... * 87 FETCH (VIEW 21 ENVELOPE ...) ... a003 OK VIEW is useful _without_ narrowing. Notice in the example above the entire 3450 message map was never fetched. I think the flaw found in this conversation is that at this point in the protocol the client has fetched information about 40 messages scattered throughout the mailbox (43, 23, and 87, for instance). If the client changes VIEW now (say the user wants to see messasges sorted by sender) it would be good for the client to be able to use that cached information. Is there another advantage of fetching the full map besides the ability to retain cached information? Larry Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05438 for ietf-imapext-bks; Fri, 18 Aug 2000 17:39:19 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05434 for ; Fri, 18 Aug 2000 17:39:18 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id RAA10634; Fri, 18 Aug 2000 17:39:17 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7J0dFX23244; Fri, 18 Aug 2000 17:39:16 -0700 Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT) From: Steve Hubert To: Cyrus Daboo cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <3513213.3175618741@socrates.cyrusoft.com> Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000, Cyrus Daboo wrote: > --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert > wrote: > > > The user wants to view the entire mailbox, though they are only looking at > > a page at a time, so perhaps the VIEW would be a single page of the sort > > results. > > No - you would do a VIEW that matches all the messages in the mailbox but > sets the sort order to whatever is required. Then you access each message > via view position numbers. The client will 'cache' messages as needed for > its display as the user scrolls their window. This is 'virtual scrollbars' > as opposed to 'paging'. If the VIEW matches all the messages you're back to the O(n) problem. I can see where VIEW would be beneficial if done in conjunction with a SEARCH which limits the number of messages in the VIEW, but with SORT we are interested in all n messages. Either that, or you've got to do something like I was talking about using uids to paste VIEWs together so that the user doesn't know they are viewing only a subset. I agree that you would typically set the VIEW to be all of the messages in this case in order to avoid some of the additional complexity that VIEW adds. Steve Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05355 for ietf-imapext-bks; Fri, 18 Aug 2000 17:32:57 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05351 for ; Fri, 18 Aug 2000 17:32:55 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id RAA03101; Fri, 18 Aug 2000 17:32:58 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id RAA02719; Fri, 18 Aug 2000 17:32:57 -0700 (PDT) Date: Fri, 18 Aug 2000 17:31:38 -0700 From: Chris Newman To: Cyrus Daboo , IMAP Extensions WG Subject: Re: VIEW too chatty Message-ID: <1895727.3175608698@nifty-jr.west.sun.com> In-Reply-To: <3223946.3175613932@socrates.cyrusoft.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 18:58 -0400 Cyrus Daboo wrote: > I think the proposed windowing mechanism would be too drastic and > complicated a change to VIEW. Agreed. I was having too much fun. :-) However, I will note the windowing mechanism included a solution to the "Client needs VIEW map" problem. We probably still need something like: tag VIEW MAP * VIEW MAP : ... or for threaded views: * VIEW MAP (+n ...) ... ( +n) > There is a radical solution to this (probably too radical for most > people): allow the meaning of the numbers at the start of 'message-data' > responses to be either a sequence number, a view position number or a UID > depending on what the client wants. Thus a client that only cares about > UIDs would switch server responses to UIDS: > > a SELECT INBOX (RESPOND UID) <- tell server to use UIDs in responses > ... > > * 21345 FETCH ... <- 21345 is the message UID not sequence > number * 21346 EXPUNGE <- 21346 is a UID > > The same could be done for view position numbers. That way a client that > prefers the view position number can tell the server to always send it, > without the overhead of the additional response. I'll need to think about this some more. It might be better as a separate extension, since it's useful without VIEW. I'll observe a simpler solution to the specific problem would be to return VIEW position numbers only when explicitly requested. In other words, VIEW FETCH ... doesn't return the VIEW position number unless the ... includes a VIEW fetch item. >> (4) Verbosity of "* VIEW" responses when many messages added. > > Right now we have a * VIEW for each change. We could compress this down > to a single * VIEW for all changes during the command in progress. > Something along the lines off: > > * VIEW (1:3,5) (10 11 15 16) (1:2,20) > > The three groups represent: > > 1) View positions of messages removed from the view > 2) Pairs of view positions for messages moving in the view > 3) View positions of new messages added to the view I like this. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05087 for ietf-imapext-bks; Fri, 18 Aug 2000 17:17:16 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05083 for ; Fri, 18 Aug 2000 17:17:15 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id UAA05338; Fri, 18 Aug 2000 20:16:23 -0400 (EDT) Date: Fri, 18 Aug 2000 20:19:01 -0400 From: Cyrus Daboo To: Steve Hubert cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <3513213.3175618741@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert wrote: > I guess my question is what happens when the user scrolls out of the VIEW. You can never 'scroll' out of the view. The view defines the set of messages that the user can see at any one time, though not all of those messages may be cached. Thus the view position number range defines the scroll range. > The user wants to view the entire mailbox, though they are only looking at > a page at a time, so perhaps the VIEW would be a single page of the sort > results. No - you would do a VIEW that matches all the messages in the mailbox but sets the sort order to whatever is required. Then you access each message via view position numbers. The client will 'cache' messages as needed for its display as the user scrolls their window. This is 'virtual scrollbars' as opposed to 'paging'. > In the top-level SORT case, we would just fetch the data we need > based on the sort map we've already gotten from the server. In the > integrated SORT/VIEW case we have to establish a new VIEW and ask the > server to sort again, no? We'll also have to use uids somehow to place the > "cursor" on the same current message and paste the old and new views > together, since the view sequence numbers won't tell us anything about > that. If we wish to cache results of the fetches we'll have to get uids > and cache based on uid and we'll have to map back and forth between view > numbers and uids. Am I thinking about it correctly, is that the way it is > designed to be used? View clients will need a map if they don't want to refetch messages they might already have when resetting a view (or initiating a view in the case of a disconnected client). But they don't need to get the whole map, only the part of the map for the messages actually visible to the user is required. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id RAA04894 for ietf-imapext-bks; Fri, 18 Aug 2000 17:07:34 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA04890 for ; Fri, 18 Aug 2000 17:07:33 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id RAB24730; Fri, 18 Aug 2000 17:07:35 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id RAA00708; Fri, 18 Aug 2000 17:07:32 -0700 (PDT) Date: Fri, 18 Aug 2000 17:06:13 -0700 From: Chris Newman To: Steve Hubert , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1803970.3175607173@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 15:04 -0700 Steve Hubert wrote: > As a client developer (pine) one of the things I hope for in extensions is > simplicity. We already have two ways to refer to messages, uids and > sequence numbers. I don't want to have to keep track of a third. You already do, when you pull down SORT results. > The last proposed solution to the problem made my skin go pale. Sorry 'bout that. I know it was too complex, I was just having too much fun :-) > While I've got you, could someone explain how VIEW would be used to allow > a user to sort a mailbox and then scroll through it? How would you do this > so that it was snappy and didn't have the O(n) problem? Thanks. How do you do scalable windowing on an unsorted IMAP mailbox? You fetch information in sub-ranges by seqno. With a SORTed mailbox you use VIEW the same way -- do the VIEW SET SORT and fetch information in sub-ranges by view position. Even better, you get notified where new messages go in your view and don't have to re-issue the SORT command (wasting a round-trip and O(n) network bandwidth) for every new delivery. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA04828 for ietf-imapext-bks; Fri, 18 Aug 2000 17:05:06 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA04824 for ; Fri, 18 Aug 2000 17:05:05 -0700 (PDT) Received: from ppp4.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7J04YA04884; Fri, 18 Aug 2000 20:04:34 -0400 Message-ID: <399DCF96.B11E2BBB@oceana.com> Date: Fri, 18 Aug 2000 20:06:46 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Newman CC: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1395622.3175600383@nifty-jr.west.sun.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Chris Newman wrote: > > --On Friday, August 18, 2000 16:54 -0400 Ken Murchison > wrote: > > Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: > > > > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > > do some magical handwaving that would make it technically superior to a > > (potentially revised) toplevel SORT/THREAD? > > If I understand your question, you're asking for the technical difference > between a VIEW command which has extensible subcommands and a VIEW command > which has extensible subcommands which must also be top-level commands. > > The technical difference is that the latter requires the presence of a > top-level command, even if that top-level command wouldn't be useful. Putting aside any philosophical differences over whether toplevel SORT/THREAD is useful: In a back-asswards way I was attempting to get a consensus that the toplevel SORT/THREAD (with whatever additional sort keys and threading algorithms a deemed necessary) *could* be used with VIEW to perform the desired functions. If it turns out that the embedded SORT/THREAD would be so technically different or superior that toplevel SORT/THREAD couldn't be used, then we could short-circuit a lot of this discussion right now. I don't think this is the case, but want to see if anybody does. I'm fairly confident that a single SORT/THREAD engine in a server can be used for both VIEW and toplevel commands. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04356 for ietf-imapext-bks; Fri, 18 Aug 2000 16:50:47 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04348 for ; Fri, 18 Aug 2000 16:50:46 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id QAA25552; Fri, 18 Aug 2000 16:50:42 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7INofi21729; Fri, 18 Aug 2000 16:50:42 -0700 Date: Fri, 18 Aug 2000 16:50:40 -0700 (PDT) From: Steve Hubert To: Cyrus Daboo cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <3161821.3175612899@socrates.cyrusoft.com> Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000, Cyrus Daboo wrote: > The O(n) problem only comes with the SORT response. Once the client has the > SORT map, or has initiated a view, the set of commands it issues will > effectively be the same, i.e. at that point it is just filling its message > cache with messages in sorted order in response to user scroll actions. For > view clients this is done by using VIEW FETCH with ranges of view position > numbers (1:10 then 11:20 etc). For SORT clients, they have to use the > sorted sequence or UID numbers. In both cases the client gets only what it > needs, except for the SORT response which returns the entire map. I guess my question is what happens when the user scrolls out of the VIEW. The user wants to view the entire mailbox, though they are only looking at a page at a time, so perhaps the VIEW would be a single page of the sort results. In the top-level SORT case, we would just fetch the data we need based on the sort map we've already gotten from the server. In the integrated SORT/VIEW case we have to establish a new VIEW and ask the server to sort again, no? We'll also have to use uids somehow to place the "cursor" on the same current message and paste the old and new views together, since the view sequence numbers won't tell us anything about that. If we wish to cache results of the fetches we'll have to get uids and cache based on uid and we'll have to map back and forth between view numbers and uids. Am I thinking about it correctly, is that the way it is designed to be used? Steve Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02953 for ietf-imapext-bks; Fri, 18 Aug 2000 15:57:08 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02949 for ; Fri, 18 Aug 2000 15:57:07 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA05139; Fri, 18 Aug 2000 18:56:10 -0400 (EDT) Date: Fri, 18 Aug 2000 18:58:52 -0400 From: Cyrus Daboo To: Chris Newman , IMAP Extensions WG Subject: Re: VIEW too chatty Message-ID: <3223946.3175613932@socrates.cyrusoft.com> In-Reply-To: <802267.3175590518@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 12:28 PM -0700 Chris Newman wrote: > There seems to be agreement that VIEW is too chatty. So perhaps we > should fix that _before_ we deploy it. Here are some "chatiness" > problems with the current VIEW proposal which can't be solved by a > general purpose compression layer: I think the proposed windowing mechanism would be too drastic and complicated a change to VIEW. There are other things we can do to the existing responses to make them less chatty. Here are some examples: > (1) Untagged VIEW responses for messages the client doesn't care about. Given that a server can send unsolicted FETCH's for messages a client is not interested in anyway, I think the overhead of this is not as bad as you might think. Particularly if my solution to (4) is used. > (2) Inclusion of VIEW position in FETCH responses even if the client has > the resources to cache that information. There is a radical solution to this (probably too radical for most people): allow the meaning of the numbers at the start of 'message-data' responses to be either a sequence number, a view position number or a UID depending on what the client wants. Thus a client that only cares about UIDs would switch server responses to UIDS: a SELECT INBOX (RESPOND UID) <- tell server to use UIDs in responses ... * 21345 FETCH ... <- 21345 is the message UID not sequence number * 21346 EXPUNGE <- 21346 is a UID The same could be done for view position numbers. That way a client that prefers the view position number can tell the server to always send it, without the overhead of the additional response. > (4) Verbosity of "* VIEW" responses when many messages added. Right now we have a * VIEW for each change. We could compress this down to a single * VIEW for all changes during the command in progress. Something along the lines off: * VIEW (1:3,5) (10 11 15 16) (1:2,20) The three groups represent: 1) View positions of messages removed from the view 2) Pairs of view positions for messages moving in the view 3) View positions of new messages added to the view This removes both UIDs and sequence numbers from the original * VIEW response. > (5) Inclusion of UIDs in VIEW/EXPUNGE responses even if the client > doesn't use UIDs. My suggestions for (4) takes care of VIEW, and the 'radical' suggestion for (2) takes care of EXPUNGE! -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02618 for ietf-imapext-bks; Fri, 18 Aug 2000 15:40:04 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02614 for ; Fri, 18 Aug 2000 15:40:03 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA05105; Fri, 18 Aug 2000 18:38:57 -0400 (EDT) Date: Fri, 18 Aug 2000 18:41:39 -0400 From: Cyrus Daboo To: Steve Hubert , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <3161821.3175612899@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 3:04 PM -0700 Steve Hubert wrote: > If we could keep the VIEW extension as orthogonal as possible to the SORT > and THREAD extensions we would solve real-world problems now in a > straight-forward way, and leave the mega-mailbox problem solving separate. > I'm strongly in favor of decoupling SORT and THREAD from VIEW so that they > may be used without having to invoke the VIEW machinery. The SORT extension as it stands only provides a static sort. When new messages arrive the client has to re-issue the sort command. Similarly when message state changes the client would have to reissue the sort to see whether the message moved or dropped our of view (assuming the search criteria was used with SORT). VIEW, on the other hand, provides for static, semi-dynamic or fully dynamic updates from the server (depending on how the client uses the \VIEW flag), without the need to get the full map each time. There are situations where this will be more efficient than getting the map. There are other situations where the map will be more efficient, at least based on the current 'chatty' view design. > While I've got you, could someone explain how VIEW would be used to allow > a user to sort a mailbox and then scroll through it? How would you do this > so that it was snappy and didn't have the O(n) problem? Thanks. The O(n) problem only comes with the SORT response. Once the client has the SORT map, or has initiated a view, the set of commands it issues will effectively be the same, i.e. at that point it is just filling its message cache with messages in sorted order in response to user scroll actions. For view clients this is done by using VIEW FETCH with ranges of view position numbers (1:10 then 11:20 etc). For SORT clients, they have to use the sorted sequence or UID numbers. In both cases the client gets only what it needs, except for the SORT response which returns the entire map. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02201 for ietf-imapext-bks; Fri, 18 Aug 2000 15:14:22 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02197 for ; Fri, 18 Aug 2000 15:14:21 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id PAA12678; Fri, 18 Aug 2000 15:14:23 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id PAA22785; Fri, 18 Aug 2000 15:14:23 -0700 (PDT) Date: Fri, 18 Aug 2000 15:13:03 -0700 From: Chris Newman To: Ken Murchison cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1395622.3175600383@nifty-jr.west.sun.com> In-Reply-To: <399DA299.D0EDCFEB@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 16:54 -0400 Ken Murchison wrote: > Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: > > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > do some magical handwaving that would make it technically superior to a > (potentially revised) toplevel SORT/THREAD? If I understand your question, you're asking for the technical difference between a VIEW command which has extensible subcommands and a VIEW command which has extensible subcommands which must also be top-level commands. The technical difference is that the latter requires the presence of a top-level command, even if that top-level command wouldn't be useful. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02030 for ietf-imapext-bks; Fri, 18 Aug 2000 15:04:27 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02026 for ; Fri, 18 Aug 2000 15:04:26 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id PAA27327 for ; Fri, 18 Aug 2000 15:04:27 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7IM4PD16804 for ; Fri, 18 Aug 2000 15:04:26 -0700 Date: Fri, 18 Aug 2000 15:04:19 -0700 (PDT) From: Steve Hubert To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: As a client developer (pine) one of the things I hope for in extensions is simplicity. We already have two ways to refer to messages, uids and sequence numbers. I don't want to have to keep track of a third. If all I want to do is sort a mailbox and let the user scroll through it, I don't want to have to jump through several layers of indirection and complexity to do that. The last proposed solution to the problem made my skin go pale. There is an enormous amount of complexity there to solve a problem that we have yet to run into in real life. If we could keep the VIEW extension as orthogonal as possible to the SORT and THREAD extensions we would solve real-world problems now in a straight-forward way, and leave the mega-mailbox problem solving separate. I'm strongly in favor of decoupling SORT and THREAD from VIEW so that they may be used without having to invoke the VIEW machinery. While I've got you, could someone explain how VIEW would be used to allow a user to sort a mailbox and then scroll through it? How would you do this so that it was snappy and didn't have the O(n) problem? Thanks. -- Steve Hubert Pine Team, Univ. of Washington, Seattle Received: by ns.secondary.com (8.9.3/8.9.3) id PAA01913 for ietf-imapext-bks; Fri, 18 Aug 2000 15:00:30 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA01905 for ; Fri, 18 Aug 2000 15:00:27 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA05043; Fri, 18 Aug 2000 17:59:27 -0400 (EDT) Date: Fri, 18 Aug 2000 18:02:06 -0400 From: Cyrus Daboo To: Mark Crispin cc: Ken Murchison , Chris Newman , IMAP Extensions WG Subject: VIEW and THREAD, was Re: SORT, THREAD, and VIEW Message-ID: <3019107.3175610526@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 2:39 PM -0700 Mark Crispin wrote: >> THREAD is a much more complicated issue. The way VIEW is designed now it >> allows hierarchical view position numbers > > THREAD is also completely hierarchical. > > If anything, VIEW doesn't quite handle threads very well, because it > tends to encourage an assumption of a flat view identifier space even > though threads are not flat. We have left the view position number syntax open so that we can have hierarchical view position numbers, e.g. '1.2', '2.4.5' etc. Isn't that enough to express hierarchy? The problem comes in ensuring that clients can specify ranges of hierarchy when doing fetches, but I think that's doable. e.g. VIEW FETCH 1:10 - fetch the first message at the top of the first ten threads VIEW FETCH 1.1:1.% - fetch all of the messages one level down in the first thread VIEW FETCH 1.1:1.%.% - fetch all of the messages in the first two levels down in the first thread VIEW FETCH 1,1.1:1.* - fetch all messages in the first thread The other problem comes in letting clients know when there are sub-hierarchies in each thread and how many messages there are in the sub-hierarchy. A fetch data item 'THREAD ' would work. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01637 for ietf-imapext-bks; Fri, 18 Aug 2000 14:41:56 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (noodle@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01633 for ; Fri, 18 Aug 2000 14:41:55 -0700 (PDT) Date: Fri, 18 Aug 2000 14:39:49 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Cyrus Daboo cc: Ken Murchison , Chris Newman , IMAP Extensions WG In-Reply-To: <2898802.3175608526@socrates.cyrusoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 17:28:46 -0400, Cyrus Daboo wrote: > THREAD is a much more complicated issue. The way VIEW is designed now it > allows hierarchical view position numbers THREAD is also completely hierarchical. If anything, VIEW doesn't quite handle threads very well, because it tends to encourage an assumption of a flat view identifier space even though threads are not flat. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01510 for ietf-imapext-bks; Fri, 18 Aug 2000 14:27:05 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01502 for ; Fri, 18 Aug 2000 14:27:03 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA04985; Fri, 18 Aug 2000 17:26:07 -0400 (EDT) Date: Fri, 18 Aug 2000 17:28:46 -0400 From: Cyrus Daboo To: Ken Murchison , Chris Newman cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <2898802.3175608526@socrates.cyrusoft.com> In-Reply-To: <399DA299.D0EDCFEB@oceana.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 4:54 PM -0400 Ken Murchison wrote: > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > do some magical handwaving that would make it technically superior to a > (potentially revised) toplevel SORT/THREAD? As far as sort is concerned, no. Its always been our intention to base the VIEW=SORT behaviour on Mark's SORT command, using the same keys etc, though possibly extending the keys in use. THREAD is a much more complicated issue. The way VIEW is designed now it allows hierarchical view position numbers and the intent is to allow clients to do 'hierarchy descovery' on the message thread hierarchy, in a similar way that clients nowadays do LISTs. Also presenting the thread information and allowing users to navigate through interdependent threads is very much a UI issue. It may well be that the way the UIs are implemented will drive the VIEW=THREAD spec more so than VIEW=SORT. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01270 for ietf-imapext-bks; Fri, 18 Aug 2000 14:10:25 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01266 for ; Fri, 18 Aug 2000 14:10:23 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA04962; Fri, 18 Aug 2000 17:09:26 -0400 (EDT) Date: Fri, 18 Aug 2000 17:12:08 -0400 From: Cyrus Daboo To: Mark Crispin cc: Chris Newman , IMAP Extensions WG Subject: Client needs VIEW map, was Re: SORT, THREAD, and VIEW Message-ID: <2838756.3175607528@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 4:12 PM -0700 Mark Crispin wrote: > You can't cache by view specifier, because you'd be obliged to purge the > cache if you change the view. So you cache by message numbers or UID, and > need to map between view specifier and message number/UID. This comment by Mark is spot on and explains why getting a map is important for a client, at least thats what I now believe. If a view is reset (e.g. the user changes sort order) the client should not be forced to refetch all the envelopes for messages it already has. Since the view positions will change on a reset, but UID/message number does not, the sensible way to handle this problem is to cache say the UIDs, and then recover the view->UID map after the reset. This is also true of disconnected clients that have a local store indexed by UID and need to map those to server view positions when a view is first created. One of the objections to SORT is that it always returns the entire map. Well, here's an alternative proposal for using SORT while a VIEW is in effect that allows a client to get part of the map. When a view is in effect we allow a SORT command to be issued. The SORT/UID SORT command without any sort keys returns the message number/UID map in the current sort order of the view. We then introduce a new VIEWPOS search criteria that takes a view position number range (similar to the UID search criteria). This now allows a client to get a 'window' on the entire sort map: a VIEW SET SEARCH ALL SORT SIZE ... ... a UID SORT VIEWPOS 1:10 * SORT 1234 1235 1236 ... The above SORT command would return the UIDs of the first ten messages in sorted order in the view. Changing the VIEWPOS range would allow successive parts of the view position->UID map to be retrieved by the client. So this combination of VIEW and SORT gives an effective SORT command that supports 'windowing' of sort results. I think this would address the specific scalability issue with SORT by itself. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01108 for ietf-imapext-bks; Fri, 18 Aug 2000 13:59:34 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01104 for ; Fri, 18 Aug 2000 13:59:33 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7IKx2A31827; Fri, 18 Aug 2000 16:59:02 -0400 Message-ID: <399DA299.D0EDCFEB@oceana.com> Date: Fri, 18 Aug 2000 16:54:49 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Newman CC: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1058507.3175594779@nifty-jr.west.sun.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Chris Newman wrote: > > --On Friday, August 18, 2000 14:04 -0400 Ken Murchison > wrote: > > In an effort to settle at least one issue here (at least in my own > > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > > for sake of argument that the current SORT/THREAD will be updated to > > meet the needs of VIEW. > > VIEW+SORT/THREAD *is* a superior algorithm to bare SORT/THREAD with respect > to scalable handling of a sorted mailbox. Just as quicksort is superior to > bubble sort. I guess I wasn't clear yet again :( Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD do some magical handwaving that would make it technically superior to a (potentially revised) toplevel SORT/THREAD? Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00855 for ietf-imapext-bks; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00851 for ; Fri, 18 Aug 2000 13:40:55 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA29063; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA15264; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Date: Fri, 18 Aug 2000 13:39:39 -0700 From: Chris Newman To: Ken Murchison , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1058507.3175594779@nifty-jr.west.sun.com> In-Reply-To: <399D7AC9.AB39D48@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 14:04 -0400 Ken Murchison wrote: > In an effort to settle at least one issue here (at least in my own > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > for sake of argument that the current SORT/THREAD will be updated to > meet the needs of VIEW. VIEW+SORT/THREAD *is* a superior algorithm to bare SORT/THREAD with respect to scalable handling of a sorted mailbox. Just as quicksort is superior to bubble sort. However, a poorly implemented quicksort algorithm applied to a nearly sorted list is inferior in practice to a well-implemented bubble sort algorithm applied to the same list. I believe through this discussion we have determined that the current VIEW proposal is poorly executed. Therefore I consider this discussion to have been extremely productive and I have proposed a strawman to fix VIEW. The strawman VIEW is superior to toplevel SORT/THREAD in network bandwidth, network round-trips and is vastly superior in client memory requirements. It is admittedly more complex, but the complexity benefits the client/network at the expense of the server and thus can be justified. It eliminates both the relevant* recalculation problem and uses a scalable mechanism unlike bare SORT/THREAD. - Chris * - the problem related to the extra round trip and O(n) network transfer bare SORT/THREAD requires for a client to know where to insert new messages in the view. Problems with a specific implementation are not relevant to this forum. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00386 for ietf-imapext-bks; Fri, 18 Aug 2000 13:04:23 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00381 for ; Fri, 18 Aug 2000 13:04:22 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA09768; Fri, 18 Aug 2000 13:01:44 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA12163; Fri, 18 Aug 2000 13:01:42 -0700 (PDT) Date: Fri, 18 Aug 2000 13:00:23 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <916836.3175592423@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:19 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 13:10:01 -0700, Chris Newman wrote: >> Take a mailbox with 100,000 messages. Now suppose you want to sort the >> view on your Palm device. > > How many Palm device MUAs handle 100,000 message mailboxes? I believe Lawrence has a cell phone or palm client that can do it as long as the mailbox is displayed in seqnum order. > How many IMAP clients, on any platform, handle 100,000 message mailboxes? This is not a forum to debate weaknesses of current implementations. > 100,000 message mailboxes are not a reflection of the world today, or the > likely world in the future. And no computer will ever need more than 640K of RAM. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id MAA29509 for ietf-imapext-bks; Fri, 18 Aug 2000 12:33:18 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA29505 for ; Fri, 18 Aug 2000 12:33:17 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA24818; Fri, 18 Aug 2000 12:33:16 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA09566; Fri, 18 Aug 2000 12:29:58 -0700 (PDT) Date: Fri, 18 Aug 2000 12:28:38 -0700 From: Chris Newman To: IMAP Extensions WG , Cyrus Daboo Subject: VIEW too chatty Message-ID: <802267.3175590518@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: There seems to be agreement that VIEW is too chatty. So perhaps we should fix that _before_ we deploy it. Here are some "chatiness" problems with the current VIEW proposal which can't be solved by a general purpose compression layer: (1) Untagged VIEW responses for messages the client doesn't care about. (2) Inclusion of VIEW position in FETCH responses even if the client has the resources to cache that information. (3) Failure to take advantage of THREAD hierarchy knowledge when possible. (4) Verbosity of "* VIEW" responses when many messages added. (5) Inclusion of UIDs in VIEW/EXPUNGE responses even if the client doesn't use UIDs. Strawman follows: To fix (1), the client needs a way to express which subset of the view it is cacheing for potential display. So we introduce the "WINDOW" command and modifier to VIEW SET: VIEW SET (WINDOW ) ... VIEW WINDOW Where is a VIEW position. If is 0 and/or is *, then client is interested in messages outside the view. Now we can suppress untagged VIEW responses for messages outside the window (a caveat will be discussed below). To fix (2), the client has to inform the server whether it is doing the VIEW dynamically, or caching the relevant VIEW subsets. It turns out it's easy to fix (3) at the same time. Here's how: If the "CACHENOW" modifier is included in the "VIEW SET" command, then the VIEW position is not included in FETCH responses (unless explicitly asked for via "FETCH (ENVELOPE VIEW)"). In addition, after the VIEW SET and VIEW WINDOW commands, the server returns the information of interest to the client: VIEW SET (CACHENOW (WINDOW )) ... * WINDOW : ... or with thread hierarchy: * WINDOW ( : ( +n)) ... The "+n" indicates there are "n" additional messages in that thread subtree which are outside the window. To minimize chatter, if the "WINDOW" command changes the WINDOW to a superset of the previous window, then the server is permitted to suppress window information from the previous WINDOW and if the "WINDOW" command changes to a subset, the untagged window response is suppressed. On to problem (4). Cyrus noted problem (4) also applies to EXPUNGE, so we may as well fix them both at the same time. To do this, we stop using untagged VIEW for new messages and suppress all untagged EXPUNGE responses when a view is active, and instead extend the untagged EXISTS response as follows: * EXISTS (EXPUNGE # # : ...) (NEW +n : -n) There are a few subtleties. The EXPUNGE list is evaluated in order, just like untagged expunge responses, and omits the # for messages outside the window. The "#" without a indicates the message expunged was lower than . NEW contains a list correlated to the new sequence numbers. The list contains either a view position, an ordered range of view positions, an indication that message(s) were added below the window ("+n"), or an indication that messages were added after the window or outside the view ("-n"). After that is an ordered list starting with the first sequence number not in the mailbox after the expunges were performed. This list can contain a view position, a range of view positions (useful when the VIEW is in a sort order which correlates well with s), an indication that one or more message appeared after the window (+n) or that one or more messages appeared before the window (-n). While we're at it, we can collapse the untagged VIEW response since it only contains moves: * MOVE - + : + : - + "+" means any position less that in view, "+" means any position higher than + in the view or any position outside the view. The "+"/"-" here and in the (NEW ...) arguments are the caveat mentioned above necessary to fully solve (1). We don't use "0" as a position here. Finally problem (5). You'll observe none of the responses above include UIDs. But many clients want UIDs for everything. So we add the "UID" modifier to "VIEW SET" which causes "/" to be added to every or above, unless the UID can be inferred by incrementing the previous listed UID. This may force some of the ranges to be broken out. Now that we've addressed all the chatiness problems (perhaps with excessive zeal :-), the next step is to see what we can get rid of to simplify things. We could easily drop the "/" thing or make it a separate extension, at the cost of forcing disconnected clients to keep UID:SEQNO maps. Probably worth dropping. I used ranges a lot above because I observed that a general purpose compression layer probably won't catch ordering patterns in ascii-encoded numbers. We could drop that or make it a layered extension for improved performance. We could have multiple "* MOVE" responses instead of collapsing this. There are probably other possible simplifications. Thoughts? - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id LAA27451 for ietf-imapext-bks; Fri, 18 Aug 2000 11:52:50 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (sean@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA27442 for ; Fri, 18 Aug 2000 11:52:47 -0700 (PDT) Date: Fri, 18 Aug 2000 11:12:58 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Ken Murchison cc: IMAP Extensions WG In-Reply-To: <399D7AC9.AB39D48@oceana.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 14:04:57 -0400, Ken Murchison wrote: > In an effort to settle at least one issue here (at least in my own > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > for sake of argument that the current SORT/THREAD will be updated to > meet the needs of VIEW. I feel that that VIEW with imbedded SORT/THREAD is technically inferior to VIEW which uses top-level SORT/THREAD. VIEW with imbedded SORT/THREAD is excessively complex and non-robust. It creates unnecessary interlocking dependencies. It will be quite difficult to extend. In those cases in the client needs the sort map or thread tree, the VIEW mechanism is baroque and wasteful of bandwidth and RTTs. Conversely, if VIEW is restricted to a framework for managing server-based views, then there are no dependencies or extension difficulties. As new mechanisms (such as SORT and THREAD) come, or older mechanisms are retired, VIEW will naturally update by itself. VIEW will be used in those cases where it has the greatest benefit. There are currently no clients which present a sorted or threaded view without having the complete sort map or thread tree on hand. It is speculated that such clients are possible, but there is no proof of this, much less that VIEW eliminates any need for the sort map or thread tree. The notion that IMAP threading can not scale without a subsetting mechanism would be laughable to the NNTP people. NNTP clients have been threading for years; yet you would have to download a hundred or so IMAP thread trees to match a single NNTP overview download. It has been implied that server implementors would not implement VIEW if top level SORT and THREAD are available. If that is true, then VIEW is a solution in search of a problem. I don't believe that to be so; but if it is, then we should not try to prevent the inevitable. Received: by ns.secondary.com (8.9.3/8.9.3) id LAA25725 for ietf-imapext-bks; Fri, 18 Aug 2000 11:09:40 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA25721 for ; Fri, 18 Aug 2000 11:09:38 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7II9AA26577 for ; Fri, 18 Aug 2000 14:09:10 -0400 Message-ID: <399D7AC9.AB39D48@oceana.com> Date: Fri, 18 Aug 2000 14:04:57 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Mark Crispin wrote: > > By presenting VIEW as a replacement for SORT/THREAD, an assumption is > being made that "one monolithic tool fits all". This is not a good > architecture. > > A better choice is to have smaller tools which do a single job well. > VIEW is a good framework for server-based manipulation of views. > SORT/THREAD are good for sorting and threading. I agree. I think that this "separate but interoperable" or "layered" approach is both cleaner and more flexible in the long run. In an effort to settle at least one issue here (at least in my own mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume for sake of argument that the current SORT/THREAD will be updated to meet the needs of VIEW. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id VAA25616 for ietf-imapext-bks; Thu, 17 Aug 2000 21:45:23 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id VAA25597 for ; Thu, 17 Aug 2000 21:45:21 -0700 (PDT) Received: from ppp4.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7I4i4A03437; Fri, 18 Aug 2000 00:44:04 -0400 Message-ID: <399CBF98.3E780D10@oceana.com> Date: Fri, 18 Aug 2000 00:46:16 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Cyrus Daboo CC: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1198468.3175524200@socrates.cyrusoft.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Cyrus Daboo wrote: > > --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman > wrote: > > > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin > > wrote: > >> On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: > >>> I see your point, but isn't this a matter of poor implementation rather > >>> than a problem with the functionality spec'd by the draft? The > >>> processing problem could be overcome by caching some of the thread > >>> results > >> > >> I agree with Ken. VIEW does not address the recalculation problem. > > > > Actually, the VIEW untagged response specifically solves the recalcuation > > problem without requiring the client to cache anything beyond what's > > currently displayed. > > I think Ken was talking about caching on the server as opposed to the > client. If I'm not mistaken, the current SORT/THREAD implementations just > do the full sort/thread calculation each time the command is issued, > whereas if the server cached the sort/thread results it could return > updates a lot quicker. Exactly. I failed to make this clear the first time. Thanks! -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04291 for ietf-imapext-bks; Thu, 17 Aug 2000 16:26:03 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04287 for ; Thu, 17 Aug 2000 16:26:03 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA28317; Thu, 17 Aug 2000 16:25:59 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA13306; Thu, 17 Aug 2000 16:25:59 -0700 (PDT) Date: Thu, 17 Aug 2000 16:24:37 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <874606.3175518277@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:51 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 14:41:49 -0700, Chris Newman wrote: >> Actually, the VIEW untagged response specifically solves the recalcuation >> problem without requiring the client to cache anything beyond what's >> currently displayed. > > The "recalculation problem" refers to the server CPU time expended in > recalculating a sort or thread when new messages arrive. Sorry, I was thinking of the "recalculation problem" relevent to the protocol rather than implementation details. Specifically, when a client has a sorted view and gets notified of new messages with "* n EXISTS", the client must: (1) Re-issue the SORT command to the server. (2) Wait for a round-trip (3) correlate the new SORT data with the existing SORT map and determine if the display needs to be updated. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04125 for ietf-imapext-bks; Thu, 17 Aug 2000 16:14:09 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04121 for ; Thu, 17 Aug 2000 16:14:08 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA24976; Thu, 17 Aug 2000 16:14:06 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA12210; Thu, 17 Aug 2000 16:14:05 -0700 (PDT) Date: Thu, 17 Aug 2000 16:12:45 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: IETF and installed base (was Re: SORT, THREAD, and VIEW) Message-ID: <831806.3175517565@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is an interesting discussion and has just clarified my position. If there is an installed base of software with known protocol defects here are the actions the IETF can choose: 1) Standardize a corrected solution which is backwards compatibile. 2) Standardize a partially corrected solution which is backwards compatible. 3) Standardize a corrected solution which is not itself backwards compatible but permits an implementation to be backwards compatible if it chooses. 4) Standardize a partially corrected solution which is not itself backwards compatible but permits an implementation to be backwards compatible if it chooses. 5) Standardize a complete solution which is not backwards compatible. Sometimes (1) is not possible. Sometimes neither (1) nor (3) is possible. When the installed base is standards-track, then the IETF's reputation is on the line and that makes (5) extremely undesirable and adds weight to lower numbered options. Because of the K.I.S.S. principle I believe (3) should be the IETF's default action when possible. If the move from (3) to (1) adds no cruft to the protocol, then the latter is preferred (ditto for 4/2). I observe that the WG meeting rough concensus on VIEW=SORT/VIEW=THREAD is option (3). Therefore the installed base issue has been adequately addressed. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04112 for ietf-imapext-bks; Thu, 17 Aug 2000 16:13:07 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (den@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04106 for ; Thu, 17 Aug 2000 16:13:05 -0700 (PDT) Date: Thu, 17 Aug 2000 16:12:55 -0700 (Pacific Daylight Time) From: Mark Crispin To: Cyrus Daboo cc: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <1330217.3175526391@socrates.cyrusoft.com> Message-ID: Organization: Networks & Distributed Computing MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000, Cyrus Daboo wrote: > A VIEW client NEVER needs to get the 'tree'. It just uses view > position numbers to access messages in sorted order. In theory, yes. But there is no practical experience demonstrating that the theory works. Our practical experience suggests that the client needs the tree. > Once SORT and VIEW=SORT have been > setup by their respective clients, the subsequent client behaviour of > fetching the messages needed for display to the user is _exactly_ the same. This is not true if you maintain a cache on the client. You can't cache by view specifier, because you'd be obliged to purge the cache if you change the view. So you cache by message numbers or UID, and need to map between view specifier and message number/UID. VIEW does a worse job of delivering the map information. How much worse depends upon the values, but it's about 6 to 8 times worse. It is extremely unlikely that a client (particularly a disconnected client) will work with only view specifiers, and ignore both message numbers and UIDs. By presenting VIEW as a replacement for SORT/THREAD, an assumption is being made that "one monolithic tool fits all". This is not a good architecture. A better choice is to have smaller tools which do a single job well. VIEW is a good framework for server-based manipulation of views. SORT/THREAD are good for sorting and threading. It is a mistake to expand VIEW to take over sorting and threading (as opposed to allowing VIEW to use SORT and THREAD as tools). > To be honest with you I'm not sure which of SORT or VIEW=SORT is likely to > be more efficient. Then it would be a mistake to advance VIEW to the detriment of SORT/THREAD, and especially to make SORT/THREAD depend upon VIEW. > That's why I suggested having > SORT/THREAD experimental > I guess this argues for also making > VIEW=SORT experimental Unfortunately, Experimental is effectively a kiss of death. SORT/THREAD are proven solutions, and do not prevent other solutions. Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03597 for ietf-imapext-bks; Thu, 17 Aug 2000 15:38:20 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03593 for ; Thu, 17 Aug 2000 15:38:17 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA02869; Thu, 17 Aug 2000 18:37:16 -0400 (EDT) Date: Thu, 17 Aug 2000 18:39:51 -0400 From: Cyrus Daboo To: Mark Crispin cc: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1330217.3175526391@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 2:42 PM -0700 Mark Crispin wrote: > No, it's not. > > In many situations, SORT/THREAD is the superior approach. > > VIEW works better *only* if you obtain just a small amount of data at a > time. > > If the client needs the tree for more than about 20% of the mailbox, > SORT/THREAD wins in bandwidth. That's not the case. A VIEW client NEVER needs to get the 'tree'. It just uses view position numbers to access messages in sorted order. > The win point for SORT/THREAD is probably lower, since if you scroll > outside the range that you fetched with VIEW you have to get more data > whereas with SORT/THREAD you don't since you have everything. Also, you > have to consider the effect of the RTTs, since you need multiple commands > to do the same thing. VIEW does not 'fetch a range'. It merely sets up on the server the same mapping that SORT sets up on the client. Once SORT and VIEW=SORT have been setup by their respective clients, the subsequent client behaviour of fetching the messages needed for display to the user is _exactly_ the same. What's more, VIEW has zero overhead to set up - you just tack the extra VIEW data onto SELECT. With SORT, you have to issue a SELECT, then do a SORT. Only once you've got the sort map can you then start doing the same kind of 'sorted' FETCH'ing that the VIEW client can do immediately after an extended SELECT. Admittedly, VIEW does add extra responses: the required VIEW fetch data and unsolicited VIEW responses for changes to the VIEW. The later is a potential performance issue when a mailbox changes in a big way. e.g. if 1000 new messages appear in the mailbox all at once, clients may end up getting 1000 untagged VIEW responses without even asking for them. Arguably SORT would be more efficient in that case. However, its no worse than the current situation with EXPUNGE responses, where a similar behaviour could occur. To be honest with you I'm not sure which of SORT or VIEW=SORT is likely to be more efficient. I suspect there are cases where SORT would win, and other cases where VIEW=SORT would win. That's why I suggested having SORT/THREAD experimental because it does leave the door open for moving them forward on the standards track if enough people can agree that it really is as useful as VIEW=SORT. I guess this argues for also making VIEW=SORT experimental until such a time as we have enough experience to know which is better. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03060 for ietf-imapext-bks; Thu, 17 Aug 2000 15:01:44 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03056 for ; Thu, 17 Aug 2000 15:01:43 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA02813; Thu, 17 Aug 2000 18:00:42 -0400 (EDT) Date: Thu, 17 Aug 2000 18:03:20 -0400 From: Cyrus Daboo To: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1198468.3175524200@socrates.cyrusoft.com> In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman wrote: > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin > wrote: >> On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: >>> I see your point, but isn't this a matter of poor implementation rather >>> than a problem with the functionality spec'd by the draft? The >>> processing problem could be overcome by caching some of the thread >>> results >> >> I agree with Ken. VIEW does not address the recalculation problem. > > Actually, the VIEW untagged response specifically solves the recalcuation > problem without requiring the client to cache anything beyond what's > currently displayed. I think Ken was talking about caching on the server as opposed to the client. If I'm not mistaken, the current SORT/THREAD implementations just do the full sort/thread calculation each time the command is issued, whereas if the server cached the sort/thread results it could return updates a lot quicker. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02970 for ietf-imapext-bks; Thu, 17 Aug 2000 14:58:07 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02966 for ; Thu, 17 Aug 2000 14:58:06 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA26876; Thu, 17 Aug 2000 14:57:55 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (remp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA10548; Thu, 17 Aug 2000 14:57:55 -0700 Date: Thu, 17 Aug 2000 14:42:34 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Cyrus Daboo cc: Chris Newman , IMAP Extensions WG In-Reply-To: <1107297.3175522685@socrates.cyrusoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 17:38:05 -0400, Cyrus Daboo wrote: > How about publishing SORT/THREAD as experimental and including a note in > those specs that VIEW=SORT/THREAD is the 'recommended' approach for new > implementations? Would that be enough to satisfy these concerns? No, it's not. In many situations, SORT/THREAD is the superior approach. VIEW works better *only* if you obtain just a small amount of data at a time. If the client needs the tree for more than about 20% of the mailbox, SORT/THREAD wins in bandwidth. The win point for SORT/THREAD is probably lower, since if you scroll outside the range that you fetched with VIEW you have to get more data whereas with SORT/THREAD you don't since you have everything. Also, you have to consider the effect of the RTTs, since you need multiple commands to do the same thing. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02935 for ietf-imapext-bks; Thu, 17 Aug 2000 14:57:06 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02927 for ; Thu, 17 Aug 2000 14:57:04 -0700 (PDT) Received: from mailhost1.u.washington.edu (mailhost1.u.washington.edu [140.142.32.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA26767; Thu, 17 Aug 2000 14:57:01 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (scott@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost1.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA05634; Thu, 17 Aug 2000 14:57:01 -0700 Date: Thu, 17 Aug 2000 14:51:14 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 14:41:49 -0700, Chris Newman wrote: > Actually, the VIEW untagged response specifically solves the recalcuation > problem without requiring the client to cache anything beyond what's > currently displayed. The "recalculation problem" refers to the server CPU time expended in recalculating a sort or thread when new messages arrive. The VIEW untagged response has nothing to do with server calculation overhead. It simply provides a way to add a message to the view. VIEW can make the recalculation problem worse, since it forces the server to recalculate the view every time new messages arrive, even if the client did not request it. The recalculation problem is solved by server caching, not by protocol. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02656 for ietf-imapext-bks; Thu, 17 Aug 2000 14:43:15 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02652 for ; Thu, 17 Aug 2000 14:43:14 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id OAA24612 for ; Thu, 17 Aug 2000 14:43:11 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id OAA02491 for ; Thu, 17 Aug 2000 14:43:10 -0700 (PDT) Date: Thu, 17 Aug 2000 14:41:49 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <503617.3175512109@nifty-jr.west.sun.com> In-Reply-To: <399C3F3A.617EA8@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: >> I see your point, but isn't this a matter of poor implementation rather >> than a problem with the functionality spec'd by the draft? The >> processing problem could be overcome by caching some of the thread >> results > > I agree with Ken. VIEW does not address the recalculation problem. Actually, the VIEW untagged response specifically solves the recalcuation problem without requiring the client to cache anything beyond what's currently displayed. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02644 for ietf-imapext-bks; Thu, 17 Aug 2000 14:42:16 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02640 for ; Thu, 17 Aug 2000 14:42:15 -0700 (PDT) Received: from mailhost1.u.washington.edu (mailhost1.u.washington.edu [140.142.32.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA09463; Thu, 17 Aug 2000 14:42:12 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (resp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost1.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA03474; Thu, 17 Aug 2000 14:42:12 -0700 Date: Thu, 17 Aug 2000 14:19:06 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <172336.3175506601@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 13:10:01 -0700, Chris Newman wrote: > Take a mailbox with 100,000 messages. Now suppose you want to sort the > view on your Palm device. How many Palm device MUAs handle 100,000 message mailboxes? How many IMAP clients, on any platform, handle 100,000 message mailboxes? I know that Pine can, but all the other clients that I've tried fail at much smaller mailbox sizes. 100,000 message mailboxes are not a reflection of the world today, or the likely world in the future. Furthermore, it presupposes that a Palm software implementor is going to care enough about this case to avoid all per-message tables, assuming that you can even set up a virtual scrollbar of 100,000 entries without consuming a related amount of memory. > which will could stress a slow wireless connection. Gee, a lot of people here use Pine with wireless, and find that it works quite well. The example is not valid except as a gedanken exercise. > Thus these commands are poorly designed and not scalable. This is opinion, not fact, based upon contrived examples. In the real world, SORT and THREAD are no more chatty than any other IMAP command (and in some cases quite a bit less). Have you worked out the protocol generated by VIEW THREAD? VIEW consumes several times as much bandwidth as top-level THREAD to obtain the tree. This is a terrible problem with the assumption that VIEW should be the only way to get threading information. VIEW works only if you intend to get only a small amount of data at the time, and can afford the multiple RTTs necessary to calculate the view sequences that you need and translate them to message sequences or UIDs for subsequent lookup in your cache. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02549 for ietf-imapext-bks; Thu, 17 Aug 2000 14:36:35 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02545 for ; Thu, 17 Aug 2000 14:36:34 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA02712; Thu, 17 Aug 2000 17:35:27 -0400 (EDT) Date: Thu, 17 Aug 2000 17:38:05 -0400 From: Cyrus Daboo To: Chris Newman , Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1107297.3175522685@socrates.cyrusoft.com> In-Reply-To: <317507.3175509015@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 1:50 PM -0700 Chris Newman wrote: >> The developers of both servers which support only the top-level SORT and >> THREAD commands have stated their intention to support the VIEW command >> if adopted in its current form. > > I'm far more concerned about the server vendors not reading this list > than I am about yours. If a server vendor thinks "I can provide > standards compliant SORT/THREAD without this complex VIEW stuff" they're > likely to do so before they realize it's inadequate for most clients. If > SORT/THREAD require implementation of VIEW, then they're likely to get it > right the first time. How about publishing SORT/THREAD as experimental and including a note in those specs that VIEW=SORT/THREAD is the 'recommended' approach for new implementations? Would that be enough to satisfy these concerns? -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01654 for ietf-imapext-bks; Thu, 17 Aug 2000 13:51:42 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01650 for ; Thu, 17 Aug 2000 13:51:41 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA04498; Thu, 17 Aug 2000 13:51:38 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA27119; Thu, 17 Aug 2000 13:51:37 -0700 (PDT) Date: Thu, 17 Aug 2000 13:50:15 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <317507.3175509015@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Wednesday, August 16, 2000 18:18 -0700 Mark Crispin wrote: > The developers of both servers which support only the top-level SORT and > THREAD commands have stated their intention to support the VIEW command if > adopted in its current form. I'm far more concerned about the server vendors not reading this list than I am about yours. If a server vendor thinks "I can provide standards compliant SORT/THREAD without this complex VIEW stuff" they're likely to do so before they realize it's inadequate for most clients. If SORT/THREAD require implementation of VIEW, then they're likely to get it right the first time. > Where is the interoperability problem? Please read: > On Wed, 16 Aug 2000 18:08:19 -0700, Chris Newman wrote: >> If a standards compliant server supports only the bare SORT command and >> only the bare THREAD command, and a standards compliant client supports >> only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem >> with the standards. Thus the standards must prohibit that situation or they are broken. > Pine's zoom/unzoom facility. We would like to implement this using VIEW. > Zooming in Pine is separate from sorting/threading. I never used or knew about that facility when I was running Pine. Could you explain it please? It may be sufficient evidence to cause me to oppose the WG meeting rough concensus in favor of my compromise proposal. > We should seek concensus via a unity of functionality, not by benefit to > one side at the expense of another. Agreed. That's why I made my compromise proposal. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01539 for ietf-imapext-bks; Thu, 17 Aug 2000 13:45:19 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01535 for ; Thu, 17 Aug 2000 13:45:18 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id NAA00979; Thu, 17 Aug 2000 13:45:14 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (cecil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id NAA00490; Thu, 17 Aug 2000 13:45:14 -0700 Date: Thu, 17 Aug 2000 13:29:14 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Ken Murchison cc: IMAP Extensions WG In-Reply-To: <399C3F3A.617EA8@oceana.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: > Lawrence Greenfield wrote: > > I believe the primary scalability problem is that, while a client has > > the IMAP mailing list selected, it will have to rerun > > thread references us-ascii all > > every time a new message is delivered to the mailbox. This causes the > > server 1 second of computation per message delivered per client, which > > quickly can be very unfortunate for the server. > I see your point, but isn't this a matter of poor implementation rather > than a problem with the functionality spec'd by the draft? The > processing problem could be overcome by caching some of the thread > results I agree with Ken. VIEW does not address the recalculation problem. Caching is the solution, but VIEW doesn't make caching happen. Nor is VIEW necessary to make caching happen. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00869 for ietf-imapext-bks; Thu, 17 Aug 2000 13:11:29 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00865 for ; Thu, 17 Aug 2000 13:11:28 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA18275 for ; Thu, 17 Aug 2000 13:11:25 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA23049 for ; Thu, 17 Aug 2000 13:11:24 -0700 (PDT) Date: Thu, 17 Aug 2000 13:10:01 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <172336.3175506601@nifty-jr.west.sun.com> In-Reply-To: <399C28FE.1E36828A@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:03 -0400 Ken Murchison wrote: > I am a little curious about the perceived scalability problems with > SORT/THREAD. Take a mailbox with 100,000 messages. Now suppose you want to sort the view on your Palm device. Each sort command will return about 650K of data, which will could stress a slow wireless connection. But even worse, the Palm device either has to store a mapping table of at least 400K (about 1/4 the RAM of a typical consumer-grade Palm), or re-issue the SORT command every time the user scrolls outside the cached window of the mapping table. This is in addition to the problem Larry mentioned that SORT must be re-issued after each "* EXISTS" or the client must download the SORT key(s) for all messages and duplicate the server functionality locally (likely impractical on a Palm device). For those familiar with O() notation as taught in preliminary CS courses, the issue is that the bare SORT/THREAD commands have network and client memory consumption on the order of O(n) where n is the size of the mailbox. Thus these commands are poorly designed and not scalable. The VIEW command has network and client memory consumption on the order of O(1) because it supports virtual windowing. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id MAA00288 for ietf-imapext-bks; Thu, 17 Aug 2000 12:43:15 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA00284 for ; Thu, 17 Aug 2000 12:43:14 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HJgfA20181 for ; Thu, 17 Aug 2000 15:42:41 -0400 Message-ID: <399C3F3A.617EA8@oceana.com> Date: Thu, 17 Aug 2000 15:38:34 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> <200008171850.e7HIoBg11143@smtp4.andrew.cmu.edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Lawrence Greenfield wrote: > > Date: Thu, 17 Aug 2000 14:03:42 -0400 > From: Ken Murchison > Organization: Oceana Matrix Ltd. > > [...] > I am a little curious about the perceived scalability problems with > SORT/THREAD. Just for the hell of it, I performed a highly unscientific > test on my Cyrus server which has SORT/THREAD support. I ran a 'thread > references us-ascii all' on an archive of the IMAP mailing list > (currently 7800+ messages) and I received the results in about 1 > second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to > their comparative complexity. If we're talking about hundreds/thousands > of users performing similar functions over low bandwith connections, > then this is another issue, but I'm not convinced that the servers can > handle this either. > > I believe the primary scalability problem is that, while a client has > the IMAP mailing list selected, it will have to rerun > > thread references us-ascii all > > every time a new message is delivered to the mailbox. This causes the > server 1 second of computation per message delivered per client, which > quickly can be very unfortunate for the server. I see your point, but isn't this a matter of poor implementation rather than a problem with the functionality spec'd by the draft? The processing problem could be overcome by caching some of the thread results (as you've mentioned before) so that the new message(s) can be quickly inserted. How does this differ if I'm VIEWing the entire mailbox? -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id LAA29049 for ietf-imapext-bks; Thu, 17 Aug 2000 11:54:22 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA29045 for ; Thu, 17 Aug 2000 11:54:20 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HIrkA18642 for ; Thu, 17 Aug 2000 14:53:46 -0400 Message-ID: <399C33C3.8D6C8406@oceana.com> Date: Thu, 17 Aug 2000 14:49:39 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Ken Murchison wrote: > > I am a little curious about the perceived scalability problems with > SORT/THREAD. Just for the hell of it, I performed a highly unscientific > test on my Cyrus server which has SORT/THREAD support. I ran a 'thread > references us-ascii all' on an archive of the IMAP mailing list > (currently 7800+ messages) and I received the results in about 1 > second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to > their comparative complexity. ^^^^^^^^^^ Uh... this should read simplicity. Sorry. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id LAA28837 for ietf-imapext-bks; Thu, 17 Aug 2000 11:50:17 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA28833 for ; Thu, 17 Aug 2000 11:50:16 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7HIoBg11143; Thu, 17 Aug 2000 14:50:12 -0400 Date: Thu, 17 Aug 2000 14:50:11 -0400 Message-Id: <200008171850.e7HIoBg11143@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: IMAP Extensions WG In-reply-to: <399C28FE.1E36828A@oceana.com> Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Thu, 17 Aug 2000 14:03:42 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. [...] I am a little curious about the perceived scalability problems with SORT/THREAD. Just for the hell of it, I performed a highly unscientific test on my Cyrus server which has SORT/THREAD support. I ran a 'thread references us-ascii all' on an archive of the IMAP mailing list (currently 7800+ messages) and I received the results in about 1 second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to their comparative complexity. If we're talking about hundreds/thousands of users performing similar functions over low bandwith connections, then this is another issue, but I'm not convinced that the servers can handle this either. I believe the primary scalability problem is that, while a client has the IMAP mailing list selected, it will have to rerun thread references us-ascii all every time a new message is delivered to the mailbox. This causes the server 1 second of computation per message delivered per client, which quickly can be very unfortunate for the server. Larry Received: by ns.secondary.com (8.9.3/8.9.3) id LAA28142 for ietf-imapext-bks; Thu, 17 Aug 2000 11:08:24 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA28136 for ; Thu, 17 Aug 2000 11:08:23 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HI7nA17184 for ; Thu, 17 Aug 2000 14:07:49 -0400 Message-ID: <399C28FE.1E36828A@oceana.com> Date: Thu, 17 Aug 2000 14:03:42 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I happen to agree with Mark on this issue. I feel that VIEW should *only* be (and is currently documented as such) a framework for limiting the scope of IMAP commands that operate in the selected state (give or take a few). Commands that operate in the selected state (FETCH, STORE, SEARCH, SORT, THREAD, etc) should be able to stand on their own and not be hidden within the VIEW functionality. This being said, I also think that any server that implements both VIEW and any of the above mentioned commands MUST allow these commands to be used within a VIEW. Chris *might* have a point that some lazy server vendors won't implement VIEW in favor of toplevel SORT/THREAD only, but if it turns out that VIEW becomes an important feature for client vendors (and users alike), then the sub-par servers will be naturally deselected in the evolution of the IMAP community. I am a little curious about the perceived scalability problems with SORT/THREAD. Just for the hell of it, I performed a highly unscientific test on my Cyrus server which has SORT/THREAD support. I ran a 'thread references us-ascii all' on an archive of the IMAP mailing list (currently 7800+ messages) and I received the results in about 1 second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to their comparative complexity. If we're talking about hundreds/thousands of users performing similar functions over low bandwith connections, then this is another issue, but I'm not convinced that the servers can handle this either. Ken (Cyrus contributor) -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id KAA26356 for ietf-imapext-bks; Thu, 17 Aug 2000 10:06:48 -0700 (PDT) Received: from mail.yourdomain.com (m319-mp1-cvx1a.man.ntl.com [62.252.197.63]) by ns.secondary.com (8.9.3/8.9.3) with SMTP id JAA26173; Thu, 17 Aug 2000 09:58:55 -0700 (PDT) From: announce@leisurewebcams.com Message-Id: <200008171658.JAA26173@ns.secondary.com> Date: Thu, 17 Aug 2000 14:23:35 Subject: LeisureWebcams.com - See the World Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: LeisureWebcams.com is a recently launched website specialising in providing free LIVE access to over 1,500 webcams and 2,000 Tourist Offices world wide. Check it out:- http://www.leisurewebcams.com/ This offers you the chance to check out live and frequently updated images of your chosen location through the webcams and get detailed local knowledge through the Tourist Offices. Along with booking holidays direct through our travel partner, there is the opportunity to sell your unwanted clothes and equipment through our free Swap Shop. There is a lot to see, so if you have enjoyed your trip through our site, do tell your friends and let us know through 'Your Views'. If you have any suggestions for the site, or queries, please feel free to contact me at cy@LeisureWebcams.com. I look forward to hearing from you. Kind regards, Charlie Yates MARKETING DIRECTOR LeisureWebcams.com Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id TAA27754 for ietf-imapext-bks; Wed, 16 Aug 2000 19:17:31 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (remp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id TAA27750 for ; Wed, 16 Aug 2000 19:17:29 -0700 (PDT) Date: Wed, 16 Aug 2000 18:18:24 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <2252934.3175438099@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 16 Aug 2000 18:08:19 -0700, Chris Newman wrote: > If a standards compliant server supports only the bare SORT command and > only the bare THREAD command, and a standards compliant client supports > only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem > with the standards. The developers of both servers which support only the top-level SORT and THREAD commands have stated their intention to support the VIEW command if adopted in its current form. In the current form of the VIEW specification, the situation in which a server supports only VIEW SORT and VIEW THREAD can not exist; a server which supports VIEW with sorting and threading supports the top-level commands by definition. Where is the interoperability problem? > Since it is an unreasonable burden to require clients to support bare SORT > and bare THREAD given their known scalability problems There are no "known scalability problems" with the top-level SORT and THREAD commands. There is a claim to that effect, but that claim is disputed. As a disputed claim, it should not be referred to in terms that imply that it constitutes "known" fact. That claim is part of your argument, but can not be used to as fact to dismiss consideration of contrary arguments. > In particular, the standards track sort extension needs to state: > (1) If the client sees the "VIEW=SORT"/"SORT2" (whichever we pick) > capability then it MAY presume that the "VIEW"/"VIEW=SEARCH" capability is > also present. > (2) If the server advertises "VIEW=SORT"/"SORT2" (whichever we pick) then > it MUST also advertise and support "VIEW"/"VIEW=SEARCH". > Ditto for the standards track THREAD extension. Why introduce all this complexity? We can do something much simpler: If the client sees the VIEW capability, then 1) VIEW SEARCH is present. 2) if the client also sees the SORT capability, then VIEW SORT is present 3) if the client also sees the THREAD capability, then VIEW THREAD is present Rule (1) can be stipulated by the VIEW specification. Rules (2) and (3) can be stipulated by either the VIEW specification or by the SORT and THREAD specifications. Not only "can" these be stipulated, they "should" be stipulated. I have no objection to a flat prohibition of an implementation which has VIEW SEARCH and top-level SORT/THREAD, but not VIEW SORT or VIEW THREAD; I would be unhappy if there wasn't such a prohibition. > The WG meeting rough consensus (which was not my proposal) was that we call > the capabilities "VIEW=SORT" and "VIEW=THREAD=xxx", and that these > capabilities do not imply the presence of the bare SORT or THREAD commands. > The latter exclusion was justified primarily on the basis of the KISS > principle -- we don't need two ways to do SORTing or THREADing, the VIEW > method preferred by client vendors is sufficient. At least one client developer, and two server developers, feel that they do not want to have VIEW overloaded with sorting and threading capability. Rather, they want VIEW to be a framework for managing views that uses other (existing) mechanisms for sorting and threading. These are the people who have operational experience with IMAP server-based sorting and threading today. There are currently no implementations of VIEW in any form. > You have made assertions that the > bare SORT/THREAD commands are useful in addition to the VIEW version, but > provided no evidence or real world scenarios to back up that assertion. Pine's zoom/unzoom facility. We would like to implement this using VIEW. Zooming in Pine is separate from sorting/threading. > The installed base issue is largely irrelevant in this case, because there > is no installed base of standards complaint servers supporting "SORT" and > "THREAD=xxx" (indeed, any server which advertises those is not even > compliant with RFC 2060). It does not benefit anyone to call UW imapd and Cyrus imapd "not standards compliant." Nor does it benefit anyone to call Pine "not standards compliant." It makes all sides look bad. It gives the proponents of non-IMAP solutions ammunition to say "IMAP is toast. They're are in a civil war, with the guys who invented IMAP on one side, and an IETF working group on the other side. It's all politics, and you're better off not using IMAP." Let's not go down this path. We should seek concensus via a unity of functionality, not by benefit to one side at the expense of another. > The "do no harm" principle applies so we have to > name the standard versions of "SORT" and "THREAD" something else, but the > IETF is never obligated to incorporate deployed non-standard protocol into > standards. Nevertheless, the IETF generally does adopt widely used mechanisms that fufill the purpose for which they are intended. What made IETF win over ISO was the practice of preferring working code. After 10 years, ongoing email interoperability problems remain because IETF refused to adopt the common practice of "just send 8-bits" in SMTP/RFC822. Unlike the IMAP sort/thread case, there were excellent technical reasons for this decision: "just send 8-bits" broke standards-compliant software. Nevertheless, the experience should teach all of us to eschew defiance of a large installed base without compelling reasons. No such reasons exist with IMAP SORT/THREAD. There is a disputed claim of "scalability problems"; but even if true those problems do not affect unwilling software. Far more users today rely upon SORT/THREAD than do upon ACL. It is claimed that the ACL installed base will not permit the repair of proven problems in ACL, to the point of making a "no we won't fix it" statement. What, then, is the problem with SORT/THREAD? Received: by ns.secondary.com (8.9.3/8.9.3) id SAA19493 for ietf-imapext-bks; Wed, 16 Aug 2000 18:09:39 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA19485 for ; Wed, 16 Aug 2000 18:09:38 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id SAA02241; Wed, 16 Aug 2000 18:09:31 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id SAA29469; Wed, 16 Aug 2000 18:09:30 -0700 (PDT) Date: Wed, 16 Aug 2000 18:08:19 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <2252934.3175438099@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: If a standards compliant server supports only the bare SORT command and only the bare THREAD command, and a standards compliant client supports only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem with the standards. Therefore, the standards must prevent that situation. Since it is an unreasonable burden to require clients to support bare SORT and bare THREAD given their known scalability problems, the correct way to fix this is to declare a server non-compliant with the extension standards if it implements SORT without VIEW+SORT or THREAD without VIEW+THREAD. In particular, the standards track sort extension needs to state: (1) If the client sees the "VIEW=SORT"/"SORT2" (whichever we pick) capability then it MAY presume that the "VIEW"/"VIEW=SEARCH" capability is also present. (2) If the server advertises "VIEW=SORT"/"SORT2" (whichever we pick) then it MUST also advertise and support "VIEW"/"VIEW=SEARCH". Ditto for the standards track THREAD extension. The WG meeting rough consensus (which was not my proposal) was that we call the capabilities "VIEW=SORT" and "VIEW=THREAD=xxx", and that these capabilities do not imply the presence of the bare SORT or THREAD commands. The latter exclusion was justified primarily on the basis of the KISS principle -- we don't need two ways to do SORTing or THREADing, the VIEW method preferred by client vendors is sufficient. My compromise proposal was that if a valid justification can be provided to keep the bare "SORT" and "THREAD" commands, then I could live with keeping them when the VIEW form is also present. You have made assertions that the bare SORT/THREAD commands are useful in addition to the VIEW version, but provided no evidence or real world scenarios to back up that assertion. Without such evidence/scenarios, I suspect WG rough consensus will match the WG meeting rough consensus. The installed base issue is largely irrelevant in this case, because there is no installed base of standards complaint servers supporting "SORT" and "THREAD=xxx" (indeed, any server which advertises those is not even compliant with RFC 2060). The "do no harm" principle applies so we have to name the standard versions of "SORT" and "THREAD" something else, but the IETF is never obligated to incorporate deployed non-standard protocol into standards. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id OAA15531 for ietf-imapext-bks; Wed, 16 Aug 2000 14:34:10 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (wambold@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA15527 for ; Wed, 16 Aug 2000 14:34:09 -0700 (PDT) Date: Wed, 16 Aug 2000 12:54:47 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: Pete Resnick , IMAP Extensions WG In-Reply-To: <1021299.3175417622@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 16 Aug 2000 12:27:02 -0700, Chris Newman wrote: > If server vendors can get away with implementing SORT/THREAD without > implementing VIEW, we know they will. This is a poor argument for a proposal that would cause substantial problems for an installed base. If you really believe that "server vendors [will] get away with implementing SORT/THREAD without implementing VIEW", that suggests that you fear that VIEW isn't very useful given top-level SORT/THREAD. As a server (and client) implementor who currently uses top-level SORT/THREAD extensively and intends to continue doing so, I believe that VIEW (as currently described) is very useful and will quickly become a "must have" functionality. The desirable aspect of the current description of VIEW lies in the ability to establish views independently from whatever other sorting or threading the client is doing. Discussions with the other server implementor (CMU) of top-level SORT/THREAD indicate to me that they have similar opinions. Unfortunately, your proposal would effectively: . render this use of VIEW impossible . render VIEW into a more complex interface than top-level SORT/THREAD, with no value added since we'd be stuck with the "search all" form . cause substantial damage to an installed base which which been in place for years, and force a costly transition with no benefit Consequently, I have serious reservations about the proposal. I would be hard put to justify work on it in the UW IMAP server, not to mention a great deal of work in Pine, merely to preserve the user interface status quo. We have something that works now, is widely distributed, and is much simpler. > However, I could live with a compromise where the capabilities are > "VIEW=SORT" and "VIEW=THREAD" and these capabilities imply both the > presence of the VIEW extension and the separate SORT/THREAD commands. Now, I'm confused. I had heard about this, but I thought that the idea was to permit implementing THREAD through VIEW without implementing the top-level THREAD command (which would continue to be implemented through the THREAD=xxx capability). It sounded to me like a bad idea, but I was willing to go along with it if we could move forward. Now, you propose to require *both* THREAD through VIEW and the top-level THREAD command, with both indicated by the VIEW=THREAD capability. Leaving aside the syntactic sugar (THREAD algorithms have to be listed; there are two now and a third is likely soon), I don't see the benefit for anyone. It gives the appearance of "requiring server implementors to implement VIEW to allow threading". However, the horse is long out of the barn. If a client wants to do top-level THREAD, it must look for the THREAD=xxx capability during some indefinite transition period. I think that your feared outcome is more likely to happen if you do this. In conclusion, I believe that this proposal adds no benefit and has the potention to cause a great deal of harm. It seeks to prevent something ("server vendors [will] implement... SORT/THREAD without implementing VIEW") that is not likely to happen with the current description, but could result if the proposal is adopted. As a compromise, how about a BCP document that mandates that VIEW (as it is currently described), SORT, and THREAD must be implemented together in a server? A simple server upgrade and the BCP is satisfied, without breaking the installed base. -- Mark -- Received: by ns.secondary.com (8.9.3/8.9.3) id MAA13695 for ietf-imapext-bks; Wed, 16 Aug 2000 12:28:30 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA13691 for ; Wed, 16 Aug 2000 12:28:29 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA16014; Wed, 16 Aug 2000 12:28:20 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA01097; Wed, 16 Aug 2000 12:28:16 -0700 (PDT) Date: Wed, 16 Aug 2000 12:27:02 -0700 From: Chris Newman To: Pete Resnick , Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1021299.3175417622@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: The reason I find compelling for tightly binding SORT/THREAD to VIEW is: If server vendors can get away with implementing SORT/THREAD without implementing VIEW, we know they will. If client venders have to support three different protocol models: (a) unextended (b) SORT/THREAD only (c) VIEW+SORT/THREAD, that makes clients massively more complex than necessary. Most client vendors only want to support a (for disconnected) and c (for online). So if SORT/THREAD is decoupled from VIEW, then either end users or client vendors lose big time. However, I could live with a compromise where the capabilities are "VIEW=SORT" and "VIEW=THREAD" and these capabilities imply both the presence of the VIEW extension and the separate SORT/THREAD commands. On 8/3/00 at 3:24 PM -0700, Mark Crispin wrote: >We need sorting and threading that is decoupled from VIEW; to be >able to SORT/THREAD one set of messages while VIEWing a different >set. Mark, I'd like to hear a real world scenario behind this position. While I can envision SEARCH within an active VIEW, I'm having a hard time imagining why it would ever be necessary to perform a SORT/THREAD on a mailbox other than the one the client is displaying to the user. Given the strong sentiments from others at the WG meeting, I'm doubtful even my compromise proposal can get rough concensus without a well justified need for the separate SORT/THREAD commands. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id HAA12259 for ietf-imapext-bks; Mon, 14 Aug 2000 07:19:45 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA12255 for ; Mon, 14 Aug 2000 07:19:43 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 79A952201F; Mon, 14 Aug 2000 17:04:02 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id 8D468B3802 for ; Mon, 14 Aug 2000 17:03:59 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id JAA19793 for ietf-123-outbound.09@ietf.org; Mon, 14 Aug 2000 09:15:02 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id HAA18748 for ; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03337; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Message-Id: <200008141102.HAA03337@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-01.txt Date: Mon, 14 Aug 2000 07:02:05 -0400 X-AntiVirus: scanned for viruses by Amavis 0.2.1-pre2 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-01.txt Pages : 12 Date : 11-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-01.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-01.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-01.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-01.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-01.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id GAA11608 for ietf-imapext-bks; Mon, 14 Aug 2000 06:58:32 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA11603 for ; Mon, 14 Aug 2000 06:58:30 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 093AD2201F; Mon, 14 Aug 2000 16:42:49 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id CBF40B3802 for ; Mon, 14 Aug 2000 16:42:46 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id JAA19686 for ietf-123-outbound.09@ietf.org; Mon, 14 Aug 2000 09:05:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id HAA18741 for ; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03323; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Message-Id: <200008141102.HAA03323@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-04.txt Date: Mon, 14 Aug 2000 07:02:00 -0400 X-AntiVirus: scanned for viruses by Amavis 0.2.1-pre2 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-04.txt Pages : 10 Date : 11-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-04.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-04.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-04.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-04.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-04.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id EAA08778 for ietf-imapext-bks; Mon, 14 Aug 2000 04:02:27 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id EAA08774 for ; Mon, 14 Aug 2000 04:02:26 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03337; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Message-Id: <200008141102.HAA03337@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-01.txt Date: Mon, 14 Aug 2000 07:02:05 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-01.txt Pages : 12 Date : 11-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-01.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-01.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-01.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-01.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-01.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id EAA08772 for ietf-imapext-bks; Mon, 14 Aug 2000 04:02:22 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id EAA08767 for ; Mon, 14 Aug 2000 04:02:21 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03323; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Message-Id: <200008141102.HAA03323@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-04.txt Date: Mon, 14 Aug 2000 07:02:00 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-04.txt Pages : 10 Date : 11-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-04.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-04.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-04.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-04.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-04.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id KAA02536 for ietf-imapext-bks; Fri, 11 Aug 2000 10:05:53 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (tpb@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA02532 for ; Fri, 11 Aug 2000 10:05:52 -0700 (PDT) Date: Fri, 11 Aug 2000 10:03:52 -0700 (PDT) From: Mark Crispin Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt To: Paul Overell cc: ietf-imapext@imc.org In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 11 Aug 2000 17:47:08 +0100, Paul Overell wrote: > Will the REFERENCES specification deal with referenced, but unavailable, > messages? I submitted the version with the REFERENCES specification yesterday. I think that it answers your questions. Received: by ns.secondary.com (8.9.3/8.9.3) id JAA01017 for ietf-imapext-bks; Fri, 11 Aug 2000 09:50:40 -0700 (PDT) Received: from internal.mail.demon.net (internal.mail.demon.net [193.195.224.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id JAA01010 for ; Fri, 11 Aug 2000 09:50:38 -0700 (PDT) Received: from pillar.turnpike.com (pillar.turnpike.com [194.70.55.2]) by internal.mail.demon.net with ESMTP id RAA09506; Fri, 11 Aug 2000 17:49:58 +0100 (BST) Message-ID: Date: Fri, 11 Aug 2000 17:47:08 +0100 To: ietf-imapext@imc.org From: Paul Overell Reply-To: Paul Overell Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt References: <20000808102623.A32340@speed.doit.wisc.edu> In-Reply-To: MIME-Version: 1.0 X-Mailer: Turnpike Integrated Version 5.01 M Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: In article , Mark Crispin writes >On Tue, 8 Aug 2000 10:26:23 -0500, Jon Miner wrote: >> Just wanted to note (as has probably already been noted) that message >> threading is better based on the "In-Reply-To:" header and the >> "References:" header. Using these fields makes subthreading much >> easier. This didn't seem to be mentioned in the document. > >We are working on the specification (and reference implementation) for the >REFERENCES algorithm and have been for the past month. Please be patient. > >What you should look at in the current document is the framework provided >(e.g. new algorithms can be added at any time, representation of trees, etc.) > Will the REFERENCES specification deal with referenced, but unavailable, messages? For example, message C references B references A and, for whatever reason, messages A and C are available but B is not available. Then I would still want B to be represented in the thread structure - otherwise it would give the false impression that C replied to A. The syntax in the draft currently can only return sequence numbers or UIDs whereas for message B all that is known is its message-id. Suggestion: If A is message 1, and B has message-id , and C is message 3 then the server response would be S: * THREAD (1 "" 3) and the corresponding syntax thread-members = (nz-number / msg-id) *(SP (nz-number / msg-id)) [SP thread-nested] msg-id = string Regards -- Paul Overell T U R N P I K E Received: by ns.secondary.com (8.9.3/8.9.3) id GAA12595 for ietf-imapext-bks; Thu, 10 Aug 2000 06:03:54 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA12587 for ; Thu, 10 Aug 2000 06:03:53 -0700 (PDT) From: fred@cisco.com Received: from irp-view7.cisco.com (irp-view7.cisco.com [171.69.25.24]) by sj-msg-core-1.cisco.com (8.9.3/8.9.1) with ESMTP id GAA11820; Thu, 10 Aug 2000 06:02:29 -0700 (PDT) Received: (fred@localhost) by irp-view7.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) id GAA29405; Thu, 10 Aug 2000 06:02:13 -0700 (PDT) Date: Thu, 10 Aug 2000 06:02:13 -0700 (PDT) Message-Id: <200008101302.GAA29405@irp-view7.cisco.com> To: ietf-imapext@imc.org, mrc@cac.washington.edu Subject: draft-ietf-imapext-thread-00.txt Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I notice that you recently posted a new internet draft. A document that might be worth reading is http://www.ietf.org/ID-nits.html This document was put together by members of the IESG to help the community know what are the most common problems that we see in documents, whether from working groups or individual submissions, and pro-actively avoid them. This is an automatic email; please don't conclude that I have discovered something awful about your draft, as I haven't even read it yet. Rather, I'm just letting you know that there is a list of common issues that get raised over and over again in IESG reviews, and I'd like to save you the hassle by letting you see for yourself whether any of them apply. Let me know if you have any questions I can answer. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id UAA28190 for ietf-imapext-bks; Wed, 9 Aug 2000 20:06:04 -0700 (PDT) Received: from bird (sero.mf.ejf.hu [193.225.84.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA28140; Wed, 9 Aug 2000 20:05:54 -0700 (PDT) From: nan@quotepool.com Received: from mxspr.mail.accesscomp1.net (host10.4ua.com) by bird with SMTP (1.39.111.2/16.2) id AA067490053; Thu, 10 Aug 2000 03:14:13 +0200 Date: Thu, 10 Aug 2000 03:14:13 +0200 Message-Id: <965875852.cqcoqcngetrm@cqcoqcngetrm.mail.accesscomp1.net> To: cqcoqcngetrm@accesscomp1.net Reply-To: nan@quotepool.com X-Mailer: Mozilla 4.51 [en] (Win98; I) X-Accept-Language: en Content-Type: text/html; Charset=us-ascii Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: Are you looking for a J.O.B. or Financial Freedom? vyjxg Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe:

93% WHO RESPOND TO MY AD DON'T MAKE THE CUT!
(Only highly motivated people should call)

I'm dead serious! Now let me tell you why...

Most people don't have drive! They sit around waiting for something to happen.
They see that other people have nice homes, new cars, and MONEY, but why can't they?
They basically feel sorry for themselves, and I can't help these people!

Another reason people are not qualified...

They are skeptical. BUT, the truth is, they are skeptical of themselves!
They don't have the courage to break their routine.
They are comfortable with their set hours, their set pay, and their set future.
I was not comfortable with someone controlling my future,
and I'm not comfortable working with people who are!


STOP
If you are anything like the above, we won't be able to work together!

WHAT DO THE 7% WHO DO MAKE THE CUT DISCOVER?!

People I select through an "interview like" process are forever changed!
They are opened to a world around them that they didn't know existed.
In fact, it's a world that has existed around them their whole lives,
but was purposely hidden from them!



How would you like to...

- Drastically reduce personal, business and capital gains taxes?
- Protect all assets from any form of seizure, liens, or judgments?
- Create a six figure income every 4 months?

How about...

Restoring and preserving complete personal and financial privacy?
Amassing personal wealth, multiplying it and protecting it?
Realizing a 3 to 6 times greater return on your money?
Legally making yourself and your assets completely judgment-proof,
lien-proof, divorce-proof, attorney-proof, IRS-proof?
I could go on...


TAKE A SERIOUS LOOK AT YOUR LIFE

Do you think you are paid what you are worth?
Will you be set to retire in the next few years?
Do you control the course of your day? ...your life?

The fact is we have many people in our enterprise that earn over 50K per month
from the privacy of their own homes, and are retiring in 2 to 3 years (wealthy)
and have total freedom - both personal and financial!

Many have been conditioned to believe it must be illegal, immoral or unethical
to ever earn any real profits from our efforts.

The sad truth is, it's been designed that way by the ultra-rich
and ultra-powerful since before any of us were born!


Who am I?

I'm a BIG thinker, a BIG dreamer, and I believe that I deserve the best that life has to offer.
I answered an ad much like the one you are reading now,
and was eager to hear what it was about.

I knew that I couldn't invest only a few bucks and spend an hour or two
per week to achieve the results I was looking for. I found the right information
and now I control my own destiny!

If you are interested in radically changing your thoughts and your financial future,
I invite you to call TOLL FREE:


1 800 707 4817

My name is Krystina, and I look forward to working with some of you!

* REMEMBER *

I can't do it for you, but I can show you exactly how I do it.
It's as simple as that!

Received: by ns.secondary.com (8.9.3/8.9.3) id JAA11469 for ietf-imapext-bks; Tue, 8 Aug 2000 09:42:27 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (pell@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id JAA11462 for ; Tue, 8 Aug 2000 09:42:22 -0700 (PDT) Date: Tue, 8 Aug 2000 09:44:34 -0700 (PDT) From: Mark Crispin Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt To: Jon Miner cc: ietf-imapext@imc.org In-Reply-To: <20000808102623.A32340@speed.doit.wisc.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Tue, 8 Aug 2000 10:26:23 -0500, Jon Miner wrote: > Just wanted to note (as has probably already been noted) that message > threading is better based on the "In-Reply-To:" header and the > "References:" header. Using these fields makes subthreading much > easier. This didn't seem to be mentioned in the document. We are working on the specification (and reference implementation) for the REFERENCES algorithm and have been for the past month. Please be patient. What you should look at in the current document is the framework provided (e.g. new algorithms can be added at any time, representation of trees, etc.) Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id IAA06499 for ietf-imapext-bks; Tue, 8 Aug 2000 08:22:11 -0700 (PDT) Received: from speed.doit.wisc.edu (speed.doit.wisc.edu [128.104.18.148]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA06492 for ; Tue, 8 Aug 2000 08:22:10 -0700 (PDT) Received: (from miner@localhost) by speed.doit.wisc.edu (8.10.1/8.10.1) id e78FQN632504 for ietf-imapext@IMC.ORG; Tue, 8 Aug 2000 10:26:23 -0500 Date: Tue, 8 Aug 2000 10:26:23 -0500 From: Jon Miner To: ietf-imapext@imc.org Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt Message-ID: <20000808102623.A32340@speed.doit.wisc.edu> References: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <200008081417.KAA03007@ietf.org>; from Internet-Drafts@ietf.org on Tue, Aug 08, 2000 at 10:17:25AM -0400 X-Mailer: Mutt 1.0.1i http://www.mutt.org/ X-Editor: Vim 5.5 http://www.vim.org/ X-Shell: tcsh 6.08.00 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Just wanted to note (as has probably already been noted) that message threading is better based on the "In-Reply-To:" header and the "References:" header. Using these fields makes subthreading much easier. This didn't seem to be mentioned in the document. thanks, jon * Internet-Drafts@ietf.org (Internet-Drafts@ietf.org) [000808 09:35]: > A New Internet-Draft is available from the on-line Internet-Drafts directories. > This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. > > Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION > Author(s) : M. Crispin > Filename : draft-ietf-imapext-thread-00.txt > Pages : 7 > Date : 27-Jul-00 > > This document describes the server-based threading extension to the > IMAP4rev1 protocol. This extension provides substantial performance > improvements for IMAP clients which offer threaded views. > A server which supports this extension indicates this with more or > more capability names consisting of 'THREAD-' followed by a supported > threading algorithm name as described in this document. This > provides for future upwards-compatible extensions. > > A URL for this Internet-Draft is: > http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt > > Internet-Drafts are also available by anonymous FTP. Login with the username > "anonymous" and a password of your e-mail address. After logging in, > type "cd internet-drafts" and then > "get draft-ietf-imapext-thread-00.txt". > > A list of Internet-Drafts directories can be found in > http://www.ietf.org/shadow.html > or ftp://ftp.ietf.org/ietf/1shadow-sites.txt > > > Internet-Drafts can also be obtained by e-mail. > > Send a message to: > mailserv@ietf.org. > In the body type: > "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". > > NOTE: The mail server at ietf.org can return the document in > MIME-encoded form by using the "mpack" utility. To use this > feature, insert the command "ENCODING mime" before the "FILE" > command. To decode the response(s), you will need "munpack" or > a MIME-compliant mail reader. Different MIME-compliant mail readers > exhibit different behavior, especially when dealing with > "multipart" MIME messages (i.e. documents which have been split > up into multiple messages), so check your local documentation on > how to manipulate these messages. > > > Below is the data which will enable a MIME compliant mail reader > implementation to automatically retrieve the ASCII version of the > Internet-Draft. -- .Jonathan J. Miner------------------Division of Information Technology. |miner@doit.wisc.edu University Of Wisconsin - Madison| |608/262.9655 Room 3149 Computer Science| `---------------------------------------------------------------------' We question most of the mantras around here periodically, in case you hadn't noticed. :-) -- Larry Wall in <199705101952.MAA00756@wall.org> Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id IAA03324 for ietf-imapext-bks; Tue, 8 Aug 2000 08:09:17 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA03315 for ; Tue, 8 Aug 2000 08:09:15 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id D23DD22010; Tue, 8 Aug 2000 17:57:28 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id 2300AB3802 for ; Tue, 8 Aug 2000 17:57:27 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id KAA26873 for ietf-123-outbound.09@ietf.org; Tue, 8 Aug 2000 10:25:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id KAA26681 for ; Tue, 8 Aug 2000 10:17:34 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03007; Tue, 8 Aug 2000 10:17:25 -0400 (EDT) Message-Id: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-00.txt Date: Tue, 08 Aug 2000 10:17:25 -0400 X-AntiVirus: scanned for viruses by AMaViS 0.2.1-pre2 (http://amavis.org/) Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin Filename : draft-ietf-imapext-thread-00.txt Pages : 7 Date : 27-Jul-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id IAA02349 for ietf-imapext-bks; Tue, 8 Aug 2000 08:04:59 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA02345 for ; Tue, 8 Aug 2000 08:04:57 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 1CA9F22010; Tue, 8 Aug 2000 17:53:10 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id B9B31B3802 for ; Tue, 8 Aug 2000 17:53:07 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id KAA26922 for ietf-123-outbound.09@ietf.org; Tue, 8 Aug 2000 10:35:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id KAA26688 for ; Tue, 8 Aug 2000 10:17:34 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03060; Tue, 8 Aug 2000 10:17:30 -0400 (EDT) Message-Id: <200008081417.KAA03060@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-regex-00.txt Date: Tue, 08 Aug 2000 10:17:30 -0400 X-AntiVirus: scanned for viruses by AMaViS 0.2.1-pre2 (http://amavis.org/) Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : IMAP Regular Expressions SEARCH Extension Author(s) : R. Gellens Filename : draft-ietf-imapext-regex-00.txt Pages : 6 Date : 27-Jul-00 This memo describes a regular-expression search facility for the [IMAP] protocol. A server advertises support for this facility by the capability name REGEX. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-regex-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-regex-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-regex-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-regex-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-regex-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id HAA29319 for ietf-imapext-bks; Tue, 8 Aug 2000 07:13:29 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA29296 for ; Tue, 8 Aug 2000 07:13:20 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03060; Tue, 8 Aug 2000 10:17:30 -0400 (EDT) Message-Id: <200008081417.KAA03060@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-regex-00.txt Date: Tue, 08 Aug 2000 10:17:30 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : IMAP Regular Expressions SEARCH Extension Author(s) : R. Gellens Filename : draft-ietf-imapext-regex-00.txt Pages : 6 Date : 27-Jul-00 This memo describes a regular-expression search facility for the [IMAP] protocol. A server advertises support for this facility by the capability name REGEX. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-regex-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-regex-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-regex-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-regex-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-regex-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id HAA29303 for ietf-imapext-bks; Tue, 8 Aug 2000 07:13:21 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA29294 for ; Tue, 8 Aug 2000 07:13:19 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03007; Tue, 8 Aug 2000 10:17:25 -0400 (EDT) Message-Id: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-00.txt Date: Tue, 08 Aug 2000 10:17:25 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin Filename : draft-ietf-imapext-thread-00.txt Pages : 7 Date : 27-Jul-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04276 for ietf-imapext-bks; Thu, 3 Aug 2000 16:32:41 -0700 (PDT) Received: from episteme-software.com (champdsl-25.mcleodusa.net [216.43.25.67] (may be forged)) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04272 for ; Thu, 3 Aug 2000 16:32:39 -0700 (PDT) Received: from champdsl-25.mcleodusa.net (216.43.25.68) by episteme-software.com with ESMTP (Eudora Internet Mail Server 3.0.1); Thu, 3 Aug 2000 18:36:13 -0500 Mime-Version: 1.0 X-Sender: resnick@resnick1.qualcomm.com (Unverified) Message-Id: In-Reply-To: References: X-Mailer: Eudora [Macintosh version 5.0b10-09.00] Date: Thu, 3 Aug 2000 18:36:13 -0500 To: Mark Crispin From: Pete Resnick Subject: Re: SORT, THREAD, and VIEW Cc: IMAP Extensions WG Content-Type: text/plain; charset="us-ascii" ; format="flowed" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Please, change the subject if this is issue specific rather than about the minutes per se. Other folks, please respond to this message; I will keep the entire text of Mark's message in tact here. On 8/3/00 at 3:24 PM -0700, Mark Crispin wrote: >>Long discussion about separate "SORT" and "THREAD" commands. Rough >>concensus that we want to move "SORT" and "THREAD" to historical, >>and that WG will only design VIEW=SORT and VIEW=THREAD for use >>within the VIEW framework. > >I am completely opposed to this proposal. > >The functionality of VIEW should be limited to a framework for dealing with a >subset of messages in a mailbox. Adding functionality that is only accessible >via VIEW is not the way to go. > >I do not understand the purpose of this proposal. It does not >convey any benefit that I can discern. Please explain *why* you think this is "not the way to go". Just saying that it is not will not suffice as an argument. The consensus of the room was (from my understanding of it) that the benefits were: 1. There will be less confusion in the long run if there aren't a new set of commands with similar names that do different things. (One comment was that the current text would disallow a command called "SORT2" because it starts with the same characters as the older SORT command, guaranteeing backward compatibility.) 2. From a client perspective, there is no reason to have a separate command: The separate command is equivalent to the VIEW command with the view wide open. Given that the combined functionality is required, there was no reason to separate out. 3. Functionally, a SORT or a THREAD *is* just a kind of VIEW on the messages. Other folks, please correct, add, or subtract as you see fit. >It removes functionality... What functionality does it remove? >...and severely impairs the usefulness of VIEW for us. It >effectively reduces VIEW to little more than a more complex >mechanism of sorting and threading than we already have. VIEW without a SORT or THREAD criteria applied to it *is* a mechanism for virtual scrollbars. What other "usefulness" did it have from which it is now "reduced"? >We need sorting and threading that is decoupled from VIEW; to be >able to SORT/THREAD one set of messages while VIEWing a different >set. This argues for the ability to do multiple views, not for decoupling. It was decided that SORT and THREAD would have to be done within a VIEW anyway, so the combined functionality must still remain. pr -- Pete Resnick Eudora Engineering - QUALCOMM Incorporated Ph: (217)337-6377 or (858)651-4478, Fax: (858)651-1102 Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03450 for ietf-imapext-bks; Thu, 3 Aug 2000 15:40:11 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (rded@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03445 for ; Thu, 3 Aug 2000 15:40:10 -0700 (PDT) Date: Thu, 3 Aug 2000 15:24:47 -0700 (PDT) From: Mark Crispin Subject: re: Minutes from IMAPEXT WG To: IMAP Extensions WG In-Reply-To: <1005448.3174280198@hobo150.eng.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: > Long discussion about separate "SORT" and "THREAD" commands. Rough > concensus that we want to move "SORT" and "THREAD" to historical, and that > WG will only design VIEW=SORT and VIEW=THREAD for use within the VIEW > framework. I am completely opposed to this proposal. The functionality of VIEW should be limited to a framework for dealing with a subset of messages in a mailbox. Adding functionality that is only accessible via VIEW is not the way to go. I do not understand the purpose of this proposal. It does not convey any benefit that I can discern. It removes functionality and severely impairs the usefulness of VIEW for us. It effectively reduces VIEW to little more than a more complex mechanism of sorting and threading than we already have. We need sorting and threading that is decoupled from VIEW; to be able to SORT/THREAD one set of messages while VIEWing a different set. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id FAA04749 for ietf-imapext-bks; Thu, 3 Aug 2000 05:27:04 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id FAA04743 for ; Thu, 3 Aug 2000 05:27:03 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id FAA12459 for ; Thu, 3 Aug 2000 05:30:49 -0700 (PDT) Received: from hobo150.eng.sun.com (hobo150.Eng.Sun.COM [129.146.31.150]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id FAA27281 for ; Thu, 3 Aug 2000 05:30:46 -0700 (PDT) Date: Thu, 03 Aug 2000 08:29:58 -0400 From: Chris Newman To: IMAP Extensions WG Subject: Minutes from IMAPEXT WG Message-ID: <1005448.3174280198@hobo150.eng.sun.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Here are the raw minutes from the WG meeting in Pittsburgh. Please speak up if I got something wrong, or missed something IMAP extensions WG 2000-31-07 15:30 Chair: Pete Resnick Minute Taker: Chris Newman Chair says he will have more time to keep working group running on September 1. VIEW draft ---------- One comment that the new flag-based model looks good. Barry suggested that the extended SELECT command have the VIEW SET argument put in parens. Agreed. Alexey was unsure if we had rough concensus on the issue of COPY perserving VIEW order. Rough concensus that we did. Question about view search response: why is it "* VIEW SEARCH" instead of "* SEARCH". There is preference at the meeting to remove VIEW from the response to match UID SEARCH model. Note "* VIEW SEARCH" might use a "0" to indicate a match outside of view. Not desirable since it could put extra load on server. Eliminate use of "* VIEW" response to notify of message outside of view, since EXISTS notifies client of new message. Rough concensus to remove it. VIEW draft doesn't refer to thread and thread doesn't refer to view. Proposal that other extensions that interact with view should describe how they interact with VIEW. Discussion about how historical SORT and VIEW will interact. Rules, if any, have to go into the SORT draft since VIEW can't reference SORT. Rough concensus that the WG's "VIEW=SORT" extension will not include a "SORT" command. Base view spec defines "VIEW=SEARCH" which is required if the server implements any VIEW support. Long discussion about separate "SORT" and "THREAD" commands. Rough concensus that we want to move "SORT" and "THREAD" to historical, and that WG will only design VIEW=SORT and VIEW=THREAD for use within the VIEW framework. Annotate draft -------------- Issue: Untagged MODTIME response, verses VALIDTIME fetch data item. Decision to go forward with untagged MODTIME response. Some concern about whether MODTIME applies to entire mailbox or some message set. Perhaps this can be done as a separate extension. We need this for disconnected resync. Rough concensus to move this to a design time to proposal included in annotate or separate. Issue: Want to include all standard flags in annotate framework to improve ability for disconnected clients to update old flags. There was rough concensus that this is a valuable idea for disconnected support, but some concern that interaction with existing IMAP flags is tricky. Need to see text. Issue: Conditional ANNOTATION store. Perhaps linked with disconnected resync and should go with design team. Needed for helpdesk application. Should we add a full lock command? No, conditional store is good enough. This issue is a known problem with existing mailbox flags. Rough concensus to move forward with this. Issue: Servers must not send annotation data in unsolicited response until client has used annotation data in fetch command. Concern that this is a client mode. Some feeling that if a client mode is used then it should be explicitly requested. Suggestion that we can notify client of annotation changes with a new readonly flag that indicates annotations have changed on that message. Concern that we need to know which annotations have changed. Punt to design team. Issue: Shared vs. Private annotations. Options: * always shared * always private * both * server determines scope of each annotation Want clients to know what's going on, want flexability. Always shared is not an option because we'd like to unify flags with annotate model, and potential security issue. Rough concensus that server determines isn't good idea because client doesn't know what's going on. Extreme concern that clients will only look at personal or only look at shared. Other option is to have personal shadow from shared. Weak rough concensus for both pers.x and shared.x, but there is a lot of concern. Design team needs to discuss more. Regexp draft ------------ Interoperability concern with multiple incompatible regexp syntaxes. Internationalization concerns. We need better searching, but might be fine with just globbing. Need beginning and end of word. We don't have concensus in this room on what we want to do. Suggestion to put regexp keyword right in front of string it applies to in search program. Command Plus ------------ Comes from desire to combine variants of LIST command (Referrals, subscriptions). Want to have a generic framework for extending commands. Concern is that if we open up extension of the commands prior to authenticated state that it will result in incautious server implementors reintroducing buffer overflow bugs. Rough concensus to go ahead with extended LIST draft which includes advice on how to design extensible IMAP commands, rather than separate informational command plus. ACL draft --------- Slam dunk issues: add separate "x" right for mailbox deletion. Issuing automatic "* OK [MYRIGHTS ..]" responses on select. Ability to replace entire ACL and/or replace ACL for multiple identifiers. Issue: mailbox hierarchy inheritance/wild cards (Crispin) * wild cards for changing the ACLs for multiple mailboxes is a slam dunk * an ACL which affects multiple mailboxes is problematic No, that's not what we want. Issuing automatic ACL on select (Crispin) We think he meant "MYRIGHTS", but need to confirm that. Query potential rights for multiple identifiers (Crispin) Nobody else wanted this. Query for available identifiers / Identifier completion / Which sets of combinations are valid? One option is a URL of the identifier directory, otherwise we want to stay out of directory problem. Map between identifiers and real names (Daboo) URL of the directory and how to lookup users? Some of us can't give a URL for all users, only for users within a given domain. Describe what groups are and how they work (Simon Josefsson) Rough concensus that group management and discovery is out of band. Best we could do is point to an out-of-band service. Group inheritance "+" syntax (Crispin). We have operational experience with negative rights as they work in the current draft. Feeling that deployed ACL servers implement group inheritance. Precedence set by ACAP spec on standards track. People understand current negative rights model. Discussion of unix model where owner rights take preference over group rights. One unix case can't be encoded: user has read, group has no rights, other has read/write. Rough concensus we're not concerned with exceptional Unix case. Solid rough concensus to follow model in current draft: union of positive minus union of negative. Command Macro Issue ------------------- Some support for this idea. Some discussion of compression alternatives. IMAP responses are the chatty problem and command macros don't help that. WG ended 15 minutes over time. Received: by ns.secondary.com (8.9.3/8.9.3) id GAA24340 for ietf-imapext-bks; Wed, 30 Aug 2000 06:10:55 -0700 (PDT) Received: from ns1.syntegra.com (ns1.syntegra.com [150.143.16.2]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA24335 for ; Wed, 30 Aug 2000 06:10:53 -0700 (PDT) Received: from [129.179.161.11] by ns1.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:11:23 -0500 Received: from csol1.udev.cdc.com by cdsms.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:11:21 -0500 Received: from isdn-220-114.arh-dialin.cdc.com by csol1.udev.cdc.com with ESMTP; Wed, 30 Aug 2000 08:11:19 -0500 Date: Wed, 30 Aug 2000 09:12:03 -0400 From: "warren.l.brown@syntegra.com" Subject: typos in draft-ietf-imapext-thread-02.txt To: "MRC@CAC.Washington.EDU" cc: "ietf-imapext@imc.org" Message-Id: Content-Language: en-USA MIME-Version: 1.0 Content-Type: MULTIPART/ALTERNATIVE; DIFFERENCES=Content-Language; boundary="1373580-20395-967641124=:-1025299" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --1373580-20395-967641124=:-1025299 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7bit Content-Language: en-USA more or more -> one or more to determining -> to determine inconsistant -> inconsistent --1373580-20395-967641124=:-1025299 Content-Type: TEXT/html; CHARSET=US-ASCII Content-ID: 0 Content-Language: en-USA more or more -> one or more
to determining -> to determine
inconsistant -> inconsistent
--1373580-20395-967641124=:-1025299-- Received: by ns.secondary.com (8.9.3/8.9.3) id GAA23950 for ietf-imapext-bks; Wed, 30 Aug 2000 06:05:03 -0700 (PDT) Received: from ns1.syntegra.com (ns1.syntegra.com [150.143.16.2]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA23945 for ; Wed, 30 Aug 2000 06:05:02 -0700 (PDT) Received: from [129.179.161.11] by ns1.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:05:32 -0500 Received: from csol1.udev.cdc.com by cdsms.cdc.com with ESMTP for ietf-imapext@imc.org; Wed, 30 Aug 2000 08:05:31 -0500 Received: from isdn-220-114.arh-dialin.cdc.com by csol1.udev.cdc.com with ESMTP; Wed, 30 Aug 2000 08:05:29 -0500 Date: Wed, 30 Aug 2000 09:06:12 -0400 From: "warren.l.brown@syntegra.com" Subject: typos in draft-ietf-imapext-sort-05.txt To: "MRC@CAC.Washington.EDU" cc: "ietf-imapext@imc.org" Message-Id: Content-Language: en-USA MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: tenatively -> tentatively determing -> determine inconsistant -> inconsistent Received: by ns.secondary.com (8.9.3/8.9.3) id DAA16013 for ietf-imapext-bks; Wed, 30 Aug 2000 03:49:15 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id DAA16006 for ; Wed, 30 Aug 2000 03:49:14 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA23534; Wed, 30 Aug 2000 06:50:14 -0400 (EDT) Message-Id: <200008301050.GAA23534@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-02.txt Date: Wed, 30 Aug 2000 06:50:14 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-02.txt Pages : 12 Date : 29-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-02.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-02.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-02.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000829112114.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-02.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-02.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000829112114.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id DAA15999 for ietf-imapext-bks; Wed, 30 Aug 2000 03:49:11 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id DAA15993 for ; Wed, 30 Aug 2000 03:49:09 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id GAA23520; Wed, 30 Aug 2000 06:50:09 -0400 (EDT) Message-Id: <200008301050.GAA23520@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-05.txt Date: Wed, 30 Aug 2000 06:50:09 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-05.txt Pages : 10 Date : 29-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-05.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-05.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-05.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000829112105.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-05.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-05.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000829112105.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id BAA02889 for ietf-imapext-bks; Wed, 30 Aug 2000 01:12:18 -0700 (PDT) Received: from sendflowersamerica.com ([206.168.43.194]) by ns.secondary.com (8.9.3/8.9.3) with SMTP id BAA01618; Wed, 30 Aug 2000 01:00:01 -0700 (PDT) From: sfaquestions@sendflowersamerica.com Subject: FlowerFunds - Fund Raising Program Date: Wed, 30 Aug 2000 01:32:17 Message-Id: <620.108063.29555@sendflowersamerica.com> Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: SendFlowersAmerica is proud to introduce FlowerFunds-- This unique new concept will provide an income flow for your organization for years to come. Your organization is invited to explore the possibilities of participating in FlowerFunds. $FlowerFunds is an individualized fund raising program for non-profit organizations and schools. $FlowerFunds are cash rebates that are paid to your organization each and every time an order is placed by your members and supporters. $The best part is that it costs your organization nothing to participate!! How it works: 1. When your members and supporters order flowers or gifts through sendflowersamerica they determine the price they want to pay; be it $30, $40, $50 or $1000. Since your members and supporters determine the price, they all can participate in this program. 2. Your organization receives 20% of the purchase price of the order. Say a husband buys his wife a $50 bouquet. Your organization will receive a $10 cash rebate. Nice. This program never ends. Each and every time there is an order placed by your memebers and supporters, your organization will receive the 20% cash rebate. That's a lot of FlowerFunds, and your organization stands to benefit from a findraiser unlike any other fundraiser. For more information call 1 800 SEND 123 or http://www.sendflowersamerica.com Imagine earning money for your organization by making someone smile :-) Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id MAA27280 for ietf-imapext-bks; Fri, 25 Aug 2000 12:06:20 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA27276 for ; Fri, 25 Aug 2000 12:06:19 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA02540 for ; Fri, 25 Aug 2000 12:06:55 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA29223 for ; Fri, 25 Aug 2000 12:06:50 -0700 (PDT) Date: Fri, 25 Aug 2000 12:05:10 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Summary: SORT/THREAD/VIEW debate Message-ID: <2632257.3176193910@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: These are my opinions on where we stand on the SORT/THREAD/VIEW debate. Please reply to this message if you think I've missed a substantial bullet item or substantially misworded a bullet item. Please use another thread for issue debate. Note that I hold strong opinions on some (but not all) of the points of contention. Thus it is quite likely that my perception of the opposite position is biased or not accurate, so please help me fix such mistakes. In some places I have added points (to both sides) which weren't expressed, but I think should have been. I suspect there is WG rough concensus on the following: * It must be possible for a server to advertise and support the deployed SORT and THREAD extensions in addition to whatever we standardize. * The deployed SORT and THREAD extensions offer a significant improvement over the base spec for online clients. * The current VIEW draft does not work well with a caching online client if there is a desire to preserve the cache across VIEW changes. * It is desirable for a caching online client to preserve the cache across VIEW changes. * Semi dynamic updates of a client view are desirable. * Fully dynamic updates of a client view are desirable. * We need to be able to extend SORT with additional keys. * THREAD should be extensible since there are at least two useful algorithms. * Windowing introduces significant complexity. * Having two ways to get SORT/THREAD positions is undesirable. The points of contention are: (1) Whether it is desirable to standardize a one-shot SORT/THREAD facility given a persistant SORT/THREAD facility will also be standardized. Pro position: * Pine needs this * one-shot SORT/THREAD are already deployed * Persistant result facility untested and will delay SORT/THREAD Con position: * Protocol is simpler without one-shot facility * Removes potential to have two ways to do same/similar functions * No scenario provided that demonstrates one-shot is useful when persistant is available. (2) Desire for scalability on the basis of mailbox size (Windowing). Pro position: * Need to design for clients with limited/expensive bandwidth * Need to design for clients with limited RAM * Need to plan for the future * Desire to use mailboxes for mailing list archives * Desire to use mailboxes for storage and virtual views for navigation Con position: * Users can't handle large mailboxes * Most software today can't handle large mailboxes * The complexity that windowing adds is not worth the benefit (3) Desire to collapse related functionality into a minimal number of capability items. Pro Position: * Simplifies client UI * Simplifies code paths and protocol testing * Encourages deployment of related functionality as a unit so servers support a broader range of clients initially, rather than deploying a partial solution (with workarounds in some clients) and waiting for market to force support for more complete solution. * Avoids two ways of doing same/similar things * Reluctance to standardize what is believed to be a partial solution. Con Position: * SORT/THREAD already deployed separately * Want to separate functions which might not win in marketplace from those which will so the end result is simpler. * Modularity of design should be expressed in capability list - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id IAA19369 for ietf-imapext-bks; Fri, 25 Aug 2000 08:57:59 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA19364 for ; Fri, 25 Aug 2000 08:57:57 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7PFwTg17494; Fri, 25 Aug 2000 11:58:29 -0400 Date: Fri, 25 Aug 2000 11:58:29 -0400 Message-Id: <200008251558.e7PFwTg17494@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Lawrence Greenfield Cc: Chris Newman , IMAP Extensions WG In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT) From: Mark Crispin On Thu, 24 Aug 2000 22:40:06 -0400, Lawrence Greenfield wrote: > I'm sorry, this example is somewhat bogus. > Are you trying to simulate a client with a cache or without a cache? Let me explain. Sorry, still confused! It is unlikely that a client will ever do "VIEW FETCH 1:20 ENVELOPE" because then the client would be obliged to re-fetch the same data every time the VIEW is redefined. Instead of caching by VIEW indexes, since these are even more ephemeral than message sequence numbers, the client will cache either by message sequence number or by UID. So, the client has some some (or all) message data cached, indexed either by message sequence number or by UID. After doing the VIEW SET SORT command, it now wants to know which view indexes translate to which message sequence numbers or UIDs, so it can do cache lookup to get the data, and only do a FETCH via IMAP if the data isn't in the cache. I chose my example carefully. Notice that I broke out the cases: no cache, a partial cache, and a full cache. So I guess at this point I'm somewhat confused (as usual!). What is the point of the VIEW/SORT/THREAD extensions? Below I outline some things that we might be trying to improve and some naive guesses about the impact of the various extensions on them. I guess if someone can clue me in with what we're trying to accomplish, I'd understand this latest discussion much better. What's the important items: 1) minimize bandwidth consumed 2) maximize responsiveness to the user 3) minimize CPU time for the client 4) minimize memory footprint for a client 5) increase server scalability Of the proposals so far, (1) may be best achieved by SORT with built-in narrowing, as suggested by Chris, for clients with a (partial) cache. But I'm not sure. Under most networks that exist today, (2) is best done by a pipelined VIEW/FETCH like I showed, since latency dominates in small fetches like a FETCH 1:20. (This is also true for a client with a partial cache if there's a single message in 1:20 that it doesn't have cached.) I do not believe that (3) is worth optimizing for. (Yes, CPU consumes battery. However, most of the people I know who worry about CPU/battery tradeoffs are doing video decoding via wireless etc, not e-mail reading.) (4) is best achieved by VIEW by a client with NO cache. I guess VIEW/SORT/THREAD can help with (5) in cases where clients would download absurd amounts of data (100,000 messages or whatever) when they really only want 20 and then they'll go away. Larry Received: by ns.secondary.com (8.9.3/8.9.3) id BAA15639 for ietf-imapext-bks; Fri, 25 Aug 2000 01:10:13 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id BAA15634 for ; Fri, 25 Aug 2000 01:10:11 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id BAA16379; Fri, 25 Aug 2000 01:10:44 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (rfort@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id BAA04844; Fri, 25 Aug 2000 01:10:44 -0700 Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Lawrence Greenfield cc: IMAP Extensions WG , Chris Newman In-Reply-To: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 22:40:06 -0400, Lawrence Greenfield wrote: > I'm sorry, this example is somewhat bogus. > Are you trying to simulate a client with a cache or without a cache? Let me explain. It is unlikely that a client will ever do "VIEW FETCH 1:20 ENVELOPE" because then the client would be obliged to re-fetch the same data every time the VIEW is redefined. Instead of caching by VIEW indexes, since these are even more ephemeral than message sequence numbers, the client will cache either by message sequence number or by UID. So, the client has some some (or all) message data cached, indexed either by message sequence number or by UID. After doing the VIEW SET SORT command, it now wants to know which view indexes translate to which message sequence numbers or UIDs, so it can do cache lookup to get the data, and only do a FETCH via IMAP if the data isn't in the cache. Received: by ns.secondary.com (8.9.3/8.9.3) id AAA14817 for ietf-imapext-bks; Fri, 25 Aug 2000 00:54:50 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id AAA14812 for ; Fri, 25 Aug 2000 00:54:49 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id AAA32699; Fri, 25 Aug 2000 00:55:23 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (neil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id AAA04560; Fri, 25 Aug 2000 00:55:23 -0700 Date: Fri, 25 Aug 2000 00:35:01 -0700 (PDT) From: Mark Crispin Subject: re: Modularity vs. Protocol options To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <984785.3176137441@localhost> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 20:24:01 -0700, Chris Newman wrote: > For example, SORT and THREAD are both functions to order the mailbox. If > one can occur without the other, then the client's ordering user interface > has to deal with 4 cases (neither, both, SORT only, THREAD only). The > entire ordering interface has to be disabled or simulated in the first > case. In the latter three, the ordering interface is enabled but in the > latter two there are sub-cases which must be disabled or simulated. My > conclusion is that, if possible, we should advertise both SORT and THREAD > with the same capability (ORDER?) as that reduces client complexity. This presupposes that all forms of "ordering" can be coalesced into a single immutable extension. But THREAD, by definition, is extensible; new algorithms can be added (and will be added). Threading is also fundamentally different from sorting; sorts are flat whereas threads have structure. I do not believe that, even with SORT2, there will ever be a closed-end, comprehensive set of "orderings" in IMAP that preclude any client-based implementation of ordering. Clients will always have their own ideas of how to "order"; furthermore, clients will probably always lead IMAP in having new "orderings" first. Therefore, different levels of server-based ordering technology will always exist. No purpose is served by the incompatibility of a change to "ORDER". A better argument would be for SORT2 to take an equals sign, ala THREAD, so that new SORT criteria could be added without having to create SORT3. That is, instead of "SORT2", have "SORT=ANSWERED SORT=BCC SORT=DELETED ..." The current set of SORT criteria would remain mandatory, preserving compatibility. This also sets a precedent for extending SEARCH, e.g. SEARCH=REGEX. There's significant potential here. > Is there any deployed server software which implements SORT and not > _THREAD_ (or vice versa) and considers that a useful case to preserve in > future versions? Some servers only have THREAD=ORDEREDSUBJECT; others have both this and THREAD=REFERENCES. Although the trend is for universal implementation of THREAD=REFERENCES, we can not assume that it will end there. Received: by ns.secondary.com (8.9.3/8.9.3) id VAA29866 for ietf-imapext-bks; Thu, 24 Aug 2000 21:08:20 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id VAA29862 for ; Thu, 24 Aug 2000 21:08:18 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id VAA02573; Thu, 24 Aug 2000 21:08:52 -0700 (PDT) Received: from [192.129.100.100] (dsl198-113.Eng.Sun.COM [129.146.198.113]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id VAA22914; Thu, 24 Aug 2000 21:08:51 -0700 (PDT) Date: Thu, 24 Aug 2000 21:07:15 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: re: Simplified VIEW strawman Message-ID: <1140799.3176140035@[192.129.100.100]> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 24, 2000 19:09 -0700 Mark Crispin wrote: > On Thu, 24 Aug 2000 18:12:39 -0700, Chris Newman wrote: >> While I'm less concerned than Mark about the difference in "blather" >> since a good compression layer would largely fix that among many other >> "blather" problems in IMAP/822/MIME/content > > The same argument ("it's just a compression problem") can be used against > your claims of "non-scalability" of the existing top-level SORT and > THREAD. Not true. Compression algorithms eliminate repetative information, thus: * blather blather 5 blather * blather blather 4 blather * blather blather 8 blather * blather blather 10 blather * blather blather 30 blather * blather blather 3 blather * blather blather 7 blather is equivalent to: * gunk 5 4 8 10 30 3 7 when compression is used (presuming the blather is the same on all lines). But most compression algorithms won't help significantly with a list of ASCII numbers (beyond the wasted bits in ASCII), and none will change a O(n) quantity of data into a O(1) quantity of data. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id UAA27047 for ietf-imapext-bks; Thu, 24 Aug 2000 20:28:41 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA27043 for ; Thu, 24 Aug 2000 20:28:40 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id UAA09411; Thu, 24 Aug 2000 20:29:13 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (rambo@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id UAA29450; Thu, 24 Aug 2000 20:29:13 -0700 Date: Thu, 24 Aug 2000 19:09:05 -0700 (PDT) From: Mark Crispin Subject: re: Simplified VIEW strawman To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <629316.3176129559@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 18:12:39 -0700, Chris Newman wrote: > While I'm less concerned than Mark about the difference in "blather" since > a good compression layer would largely fix that among many other "blather" > problems in IMAP/822/MIME/content The same argument ("it's just a compression problem") can be used against your claims of "non-scalability" of the existing top-level SORT and THREAD. Off hand, your proposed changes to VIEW commands and responses appear OK, with the important caveat that SORT and THREAD remain as top level commands. It is essential that it be possible to do a SORT or THREAD independent of the view. This is not "two ways of doing the same thing". One command returns sorted or threaded search results without altering the view. The other command sets the view and returns some subset of the results. Both are useful. Pine is likely to use both. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id UAA26905 for ietf-imapext-bks; Thu, 24 Aug 2000 20:26:31 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA26901 for ; Thu, 24 Aug 2000 20:26:30 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id UAA26573; Thu, 24 Aug 2000 20:27:04 -0700 (PDT) Received: from [192.129.100.100] (dsl198-113.Eng.Sun.COM [129.146.198.113]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id UAA21928; Thu, 24 Aug 2000 20:27:03 -0700 (PDT) Date: Thu, 24 Aug 2000 20:24:01 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: re: Modularity vs. Protocol options Message-ID: <984785.3176137441@localhost> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: When two extensions are completely separate, their impact on client complexity is separate. The more two extensions interact or perform similar functions, the more likely the client complexity they generate will be multiplicative. For example, SORT and THREAD are both functions to order the mailbox. If one can occur without the other, then the client's ordering user interface has to deal with 4 cases (neither, both, SORT only, THREAD only). The entire ordering interface has to be disabled or simulated in the first case. In the latter three, the ordering interface is enabled but in the latter two there are sub-cases which must be disabled or simulated. My conclusion is that, if possible, we should advertise both SORT and THREAD with the same capability (ORDER?) as that reduces client complexity. Is there any deployed server software which implements SORT and not _THREAD_ (or vice versa) and considers that a useful case to preserve in future versions? --On Thursday, August 24, 2000 16:50 -0700 Mark Crispin wrote: > Nevertheless, > SORT2 is not a separate "option", unless you consider RFC 1064, RFC 1176, > IMAP2bis, RFC 1730, and RFC 2060 as separate "options" of IMAP. Those are separate versions which is slightly better than separate options since older ones are likely to be deprecated. At this point it's quite practical to release IMAP software which only supports RFC 2060, which is a good thing since supporting maximum interoperability with all 5 variants is *a lot* of extra complexity. > What is more important is that these extensions are individually > additive, in keeping with the IMAP extensions model. Each extension > indicates the availability of a single feature. If the server does not > offer that feature, then the client is must do without it. >From a server's viewpoint, perhaps. From a GUI client viewpoint the extensions under discussion in this WG are options which interact in increasingly complex ways. That's one of the major reasons there is an imapext rather than a bunch of individual submissions. We need to minimize the complexity of the interactions between SORT/THREAD/VIEW/ACL/ANNOTATE and we can't push any of them forward until we've done a cursory evaluation of the interactions and determined we can deal. > If IMAPEXT were to accept Newman's argument, then it tear up all > extensions and disband, on the grounds that IMAP is impossible due to its > 2^19 "options", not to mention the 2^9 (or so) combinations of ways to > log in to the server. This is clearly absurd. I never said all extensions combine with multiplicative compexlity; only those with related functionality. The reason there is a WG is because we have rough concensus that the functionality added by the extensions we're considering is likely to be worth the cost of the complexity they introduce. But that does not justify introducing more complexity than necessary. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id TAA20499 for ietf-imapext-bks; Thu, 24 Aug 2000 19:39:40 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id TAA20488 for ; Thu, 24 Aug 2000 19:39:38 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7P2e6g17020; Thu, 24 Aug 2000 22:40:06 -0400 Date: Thu, 24 Aug 2000 22:40:06 -0400 Message-Id: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Mark Crispin Cc: IMAP Extensions WG , Chris Newman In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT) From: Mark Crispin [...] By comparison, embedding THREAD and SORT into view, when output sorting is not desired, adds orders of magnitude more IMAP protocol blather. Compare: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! with a2 VIEW SET SORT (SUBJECT) UTF-8 ALL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") * 1 FETCH (VIEW 10) * 2 FETCH (VIEW 9) * 3 FETCH (VIEW 8) * 4 FETCH (VIEW 7) * 5 FETCH (VIEW 6) * 6 FETCH (VIEW 5) * 7 FETCH (VIEW 4) * 8 FETCH (VIEW 3) * 9 FETCH (VIEW 2) * 10 FETCH (VIEW 1) a3 OK done! I'm sorry, this example is somewhat bogus. Are you trying to simulate a client with a cache or without a cache? Without a cache (and with a virtual window size of 5, say), the protocol goes more like this: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! a11 FETCH 10,9,8,7,6 (ENVELOPE) * 10 FETCH (ENVELOPE ...) * 9 FETCH (ENVELOPE ...) * 8 FETCH (ENVELOPE ...) * 7 FETCH (ENVELOPE ...) * 6 FETCH (ENVELOPE ...) a11 OK done! versus: a2 VIEW SET SORT (SUBJECT) UTF-8 AL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:5 (ENVELOPE) * 10 FETCH (VIEW 1 ENVELOPE ...) * 9 FETCH (VIEW 2 ENVELOPE ...) * 8 FETCH (VIEW 3 ENVELOPE ...) * 7 FETCH (VIEW 4 ENVELOPE ...) * 6 FETCH (VIEW 5 ENVELOPE ...) a3 OK done! (Note that, of the two sessions above, the second can be pipelined and the first can't.) With a partial cache, it's not clear to me what the protocol looks like---I'm certainly unfamiliar enough with VIEW, and I suppose it depends whether latency, bandwidth, or some other quantity is your primary concern. With a full disconnected cache, there is no protocol---the client already has the necessary data and does the work. Larry Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id SAA11446 for ietf-imapext-bks; Thu, 24 Aug 2000 18:13:54 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA11438 for ; Thu, 24 Aug 2000 18:13:47 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id SAA04851 for ; Thu, 24 Aug 2000 18:14:19 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id SAA17985 for ; Thu, 24 Aug 2000 18:14:18 -0700 (PDT) Date: Thu, 24 Aug 2000 18:12:39 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Simplified VIEW strawman Message-ID: <629316.3176129559@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I've been putting some thought into VIEW and the interaction with the current SORT/THREAD. I'd like to draw people's attention to Mark's comment here: --On Wednesday, August 23, 2000 22:15 -0700 Mark Crispin wrote: > By comparison, embedding THREAD and SORT into view, when output sorting > is not desired, adds orders of magnitude more IMAP protocol blather. > Compare: a1 SORT (SUBJECT) UTF-8 ALL > * SORT 10 9 8 7 6 5 4 3 2 1 > a1 OK done! > with > a2 VIEW SET SORT (SUBJECT) UTF-8 ALL > * 10 EXISTS 10 > a2 OK done! > a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") > * 1 FETCH (VIEW 10) > * 2 FETCH (VIEW 9) > * 3 FETCH (VIEW 8) > * 4 FETCH (VIEW 7) > * 5 FETCH (VIEW 6) > * 6 FETCH (VIEW 5) > * 7 FETCH (VIEW 4) > * 8 FETCH (VIEW 3) > * 9 FETCH (VIEW 2) > * 10 FETCH (VIEW 1) > a3 OK done! > > You are not going to convince me that the world is a better place for > having the latter forced upon those of us who are using the former with > great success today. While I'm less concerned than Mark about the difference in "blather" since a good compression layer would largely fix that among many other "blather" problems in IMAP/822/MIME/content, I'm much more concerned that there are two ways to do the same thing. If we standardize both of them, we have made a serious design error. The WG meeting rough concensus was to standardize *only* the latter model. But perhaps we could standardize only the former model after fixing the bugs/adding the missing features? Here's a simpler VIEW strawman based on the following assumptions: (1) caching across view changes is important -- this assumption largely breaks the current VIEW proposal. I'm told by client authors it is important so I'll trust that for now. The direct implication is that view position numbers should not be treated as a first-class key. (2) current SORT/THREAD result syntax should be preserved (3) Semi/full dynamic updates important (4) Scalability/windowing is important (5) K.I.S.S. I've broken this into functional groups -- SET, SEMI, FULL and WINDOW: ------ VIEW When no VIEW is active, a VIEW command must include "SET" or a "BAD" will result. VIEW with no arguments cancels the current view. VIEW with "SET" subcommand changes the view and returns WINDOW/SORT/THREAD results. VIEW without "SET" command applies to last view. The following VIEW modifiers are allowed: SET SEARCH/SORT/THREAD ... This changes the current VIEW and returns an untagged VIEW response (superset of SORT/THREAD/SEARCH response syntax). Must be at end of line. SEMI This causes the client to be notified of basic changes. A position of "0" in MOVE indicates outside the view. A newpos of "0" won't happen with SEMI -- messages don't leave the view except by expunge. * 2000 EXISTS tag VIEW SEMI SET SORT ... rest of sort command ... * VIEW ... ... * MOVE (oldpos newpos) (oldpos newpos) ... * 1 EXPUNGE * 2005 EXISTS (VIEW ...) The (VIEW ...) modifier to EXISTS result lists view positions of new messages. At this point I prefer extending EXPUNGE/EXISTS to keep the related data together. FULL Same as SEMI, but a newpos of "0" is permitted. WINDOW This returns a subrange of the result set from SEARCH/SORT/THREAD, and is necessary for scalability on the basis of mailbox size. tag VIEW WINDOW SORT ... rest of subcommand * VIEW WINDOW ... subset of SORT results tag VIEW WINDOW THREAD ... rest of subcommand * VIEW WINDOW (+n seqno seqno ...) seqno seqno (seqno seqno +n) tag VIEW WINDOW + THREAD ... rest of subcommand * VIEW WINDOW (+n seqno seqno ...) seqno (seqno +n) (seqno seqno +n) tag VIEW WINDOW (returns window data for new range from previous VIEW) If is true, results for all sub-threads will be included ( is ignored with SORT). Otherwise only results for the top level will be included. The + form is needed for expanded view (descend true) where the correct end can't be determined in advance by a client. The "+n" indicates that there were n messages in that sub-thread outside the WINDOW. ------ - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA09459 for ietf-imapext-bks; Thu, 24 Aug 2000 17:11:46 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (warner@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA09455 for ; Thu, 24 Aug 2000 17:11:45 -0700 (PDT) Date: Thu, 24 Aug 2000 16:50:33 -0700 (PDT) From: Mark Crispin Subject: re: Modularity vs. Protocol options To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <302707.3176124129@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 16:42:09 -0700, Chris Newman wrote: > If we follow the course Mark is promoting, we could end up with: > SORT > THREAD > SORT2 (with missing keys added and possible i18n fixes), > VIEW > That's 4 options, and since VIEW interacts with the other three, multiply > the above complexity list by at least 7. There are no "4 options", much less a multiplier factor of 7. Whether or not SORT is extended to SORT2 remains unsettled. Nevertheless, SORT2 is not a separate "option", unless you consider RFC 1064, RFC 1176, IMAP2bis, RFC 1730, and RFC 2060 as separate "options" of IMAP. SORT2 is nothing more than an extension. What is more important is that these extensions are individually additive, in keeping with the IMAP extensions model. Each extension indicates the availability of a single feature. If the server does not offer that feature, then the client is must do without it. If IMAPEXT were to accept Newman's argument, then it tear up all extensions and disband, on the grounds that IMAP is impossible due to its 2^19 "options", not to mention the 2^9 (or so) combinations of ways to log in to the server. This is clearly absurd. Received: by ns.secondary.com (8.9.3/8.9.3) id QAA09180 for ietf-imapext-bks; Thu, 24 Aug 2000 16:43:17 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA09176 for ; Thu, 24 Aug 2000 16:43:16 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA12689 for ; Thu, 24 Aug 2000 16:43:49 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA13370 for ; Thu, 24 Aug 2000 16:43:48 -0700 (PDT) Date: Thu, 24 Aug 2000 16:42:09 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Modularity vs. Protocol options Message-ID: <302707.3176124129@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I'm a huge supporter of modular design. Indeed, one reason I dislike object oriented languages is that a well designed modular program will often have several modules which operate on the same object, and most object oriented languages discourage or prohibit such good design. However, large numbers of protocol options are bad, and doubly so when they interact. Furthermore, two different ways to do the same thing is also bad. Every "option" results in the following complexity in every client: 1. a test for the presence of the option 2. facility to enable/disable all GUI elements impacted by that option 3. Adding conditionals to any commands which that option introduces 4. Adding an additional code path (with associated maintenance and bugs) if the option offers a performance enhancement. 5. If the option is sufficiently important to users, include all the code necessary to simulate the behavior of the option when it's not present. 6. Interop and regression tests related to the option must be done once against servers without it and again with the option. When options interact, then the complexity tends to be multiplicative. If we follow the course Mark is promoting, we could end up with: SORT THREAD SORT2 (with missing keys added and possible i18n fixes), VIEW That's 4 options, and since VIEW interacts with the other three, multiply the above complexity list by at least 7. IMHO, we should have a single extension name (how about "ORDER=thread-alg,...") which includes as much of the SORT/THREAD/VIEW functionality as we believe is ready for the standards track. I fully encourage implementors to write their code with the modular design that Mark explained, but there's no reason that design must be reflected in the capability list, and many reasons why it shouldn't. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id OAA05698 for ietf-imapext-bks; Thu, 24 Aug 2000 14:10:48 -0700 (PDT) Received: from DF-INET-1.dogfoodinternet.com (df-inet1.exchange.microsoft.com [131.107.8.8]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA05692 for ; Thu, 24 Aug 2000 14:10:46 -0700 (PDT) Received: from df-virus2.platinum.corp.microsoft.com ([172.30.236.33]) by DF-INET-1.dogfoodinternet.com with Microsoft SMTPSVC(5.0.2195.1600); Thu, 24 Aug 2000 14:08:02 -0700 Received: from 172.30.236.11 by df-virus2.platinum.corp.microsoft.com (InterScan E-Mail VirusWall NT); Thu, 24 Aug 2000 14:08:28 -0700 (Pacific Daylight Time) Received: from DF-SPOT.platinum.corp.microsoft.com ([172.30.236.99]) by yuri.dns.microsoft.com with Microsoft SMTPSVC(5.0.2195.2023); Thu, 24 Aug 2000 14:08:31 -0700 x-mimeole: Produced By Microsoft Exchange V6.0.4417.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C00E0F.74DDFDCB" Subject: RE: Microsoft Canards Date: Thu, 24 Aug 2000 14:08:31 -0700 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Microsoft Canards Thread-Index: AcAN83Q7OqTT2Rc9RIC9hs0EgxIsSgAGw/Zg From: "Larry Osterman" To: "Chris Newman" , "Mark Crispin" Cc: "IMAP Extensions WG" X-OriginalArrivalTime: 24 Aug 2000 21:08:31.0944 (UTC) FILETIME=[752B3C80:01C00E0F] Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is a multi-part message in MIME format. ------_=_NextPart_001_01C00E0F.74DDFDCB Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I understand that, it's just that that particular quote is one of my hot buttons - so very few people remember what the market was like back in 1982 (heck, there may be people reading this that weren't ALIVE back in 1982!) that it's easy to say "hee hee - wasn't Bill Gates (Mr. Bloatware himself) so stupid back then" - and that's how urban legends like this one get started. People forget that the original PC was a 4.77mhz 8088 with 64K of RAM, and that the base machine came with no floppy and two monitor choices: a display adapter that was capable of 640x480 in 4 colors, and 320x240 in 16 colors, and a black&white text-only display adapter. That was it, nothing else. It wasn't until '83 that PC's started coming with a floppy drive as a standard option. And in the world of the original PC, a 640K wasn't such a limitation - after all, a meg of RAM cost over a thousand dollars back then... Anyway, as I said - it's one of my personal hot buttons, so..... Larry Osterman Sent from larryo-laptop.dns.microsoft.com running NT5 and Outlook 2000 and Exchange Platinum! Please notify the sender of any difficulties. > -----Original Message----- > From: Chris Newman [mailto:cnewman@innosoft.com] > Sent: Thursday, August 24, 2000 10:46 AM > To: Larry Osterman; Mark Crispin > Cc: IMAP Extensions WG > Subject: Re: Microsoft Canards >=20 >=20 > Very sorry, I must have misremembered the quote attribution. =20 > The point I=20 > was trying to make is that smart and famous people often fail=20 > to predict=20 > the requirements for the future. Thus designing for=20 > scalability rather=20 > than for "what works today" is usually well worth the effort. >=20 > - Chris >=20 >=20 ------_=_NextPart_001_01C00E0F.74DDFDCB Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RE: Microsoft Canards

I understand that, it's just that that particular = quote is one of my hot buttons - so very few people remember what the = market was like back in 1982 (heck, there may be people reading this = that weren't ALIVE back in 1982!) that it's easy to say "hee hee - = wasn't Bill Gates (Mr. Bloatware himself) so stupid back then" - = and that's how urban legends like this one get started.

People forget that the original PC was a 4.77mhz 8088 = with 64K of RAM, and that the base machine came with no floppy and two = monitor choices: a display adapter that was capable of 640x480 in 4 = colors, and 320x240 in 16 colors, and a black&white text-only = display adapter.  That was it, nothing else.  It wasn't until = '83 that PC's started coming with a floppy drive as a standard = option.  And in the world of the original PC, a 640K wasn't such a = limitation - after all, a meg of RAM cost over a thousand dollars back = then...

Anyway, as I said - it's one of my personal hot = buttons, so.....


Larry Osterman
Sent from larryo-laptop.dns.microsoft.com running NT5 = and Outlook 2000 and Exchange Platinum!  Please notify the sender = of any difficulties.



> -----Original Message-----
> From: Chris Newman [mailto:cnewman@innosoft.com]
> Sent: Thursday, August 24, 2000 10:46 AM
> To: Larry Osterman; Mark Crispin
> Cc: IMAP Extensions WG
> Subject: Re: Microsoft Canards
>
>
> Very sorry, I must have misremembered the quote = attribution. 
> The point I
> was trying to make is that smart and famous = people often fail
> to predict
> the requirements for the future.  Thus = designing for
> scalability rather
> than for "what works today" is usually = well worth the effort.
>
>       =         - Chris
>
>

------_=_NextPart_001_01C00E0F.74DDFDCB-- Received: by ns.secondary.com (8.9.3/8.9.3) id LAA03331 for ietf-imapext-bks; Thu, 24 Aug 2000 11:22:24 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (smj@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA03327 for ; Thu, 24 Aug 2000 11:22:22 -0700 (PDT) Date: Thu, 24 Aug 2000 10:49:51 -0700 (PDT) From: Mark Crispin Subject: Re: Microsoft Canards To: Chris Newman cc: Larry Osterman , IMAP Extensions WG In-Reply-To: <646118.3176102782@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 10:46:22 -0700, Chris Newman wrote: > Very sorry, I must have misremembered the quote attribution. It was another individual, at a computer manufacturer which no longer exists, and the quote was that nobody would need a personal computer. The remnants of that company are now owned by a PC maker. > The point I > was trying to make is that smart and famous people often fail to predict > the requirements for the future. Thus designing for scalability rather > than for "what works today" is usually well worth the effort. Nevertheless, there is such a thing as extremism and pulling numbers out of nowhere with no supporting evidence. The history of Internet protocols is littered with good ideas that were irrepairably damaged by excessive zeal and rash speculation of future needs. How many people on this list actually have tested their implementations with 100,000 message mailboxes? I have, and have demonstrated that it works. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id KAA03006 for ietf-imapext-bks; Thu, 24 Aug 2000 10:59:05 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA03002 for ; Thu, 24 Aug 2000 10:59:03 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7OHx5A25973; Thu, 24 Aug 2000 13:59:05 -0400 Message-ID: <39A56142.35BF4557@oceana.com> Date: Thu, 24 Aug 2000 13:54:10 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG CC: Mark Crispin Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Mark Crispin wrote: [...] > The current top-level SORT and THREAD always have had the capability to limit > the messages which are sorted (input subsetting). Input subsetting is what > controls the size of the "hunk". If that's what you're concerned about, you > belong on the top-level SORT/THREAD bandwagon; your problems are solved and > you might as well start writing code. > > This is not what VIEW does. VIEW does output subsetting; that is, subsetting > of the results of SEARCH/SORT/THREAD for transmission to the client. The > complete results are maintained on the server, so that the client can get > other subsets later on. > > Output subsetting happens after all the sorting is completed, since it is on > the results of the sort. You can't subset the output without first sorting > all candidate messages. You have no way of knowing, prior to sorting, which > messages will be in a particular subset of the results. > > Here's how they interoperate: > INPUT OPTIONAL OUTPUT > SUBSETTING -> ORDERING -> SUBSETTING > (SEARCH) (SORT/THREAD) (VIEW) > > Note that the ordering step is optional; VIEW SEARCH is an example of doing > output subsetting directly on input subsetting. > > The only thing mandatory is input subsetting. You have to do this, even if > it's just to say "all messages in the mailbox". Fortunately, it's a low-cost > operation to do it. > > The entire point of VIEW is to preserve the results of the "hunk" (the results > of input subsetting, optionally modified by ordering) so that the server can > get at pieces of the "hunk" readily to answer subsequent client requests > without having to do the underlying input subsetting and ordering over again. > > Another important aspect of VIEW is to announce to the client the impact of > new messages on the view. This also presupposes the server preserving the > "hunk". This is by far the best description that I've seen of how SEARCH/SORT/THREAD/VIEW are designed to operate. It has helped solidify my understanding of the various components and I think it can help others. Perhaps some of this text should make its way into the appropriate document(s)? > Embedding THREAD and SORT into VIEW creates a gigantic monolith that contains > the disjoint functionalities of sorting, threading, and windowing, each piece > of which depends upon all the others. It is impossible to extend any of these > functionalities without changing the entire monolith. This is not modular. > > The SEARCH specification does input subsetting. This is leveraged by the > current SORT/THREAD specifications, which orders the SEARCH results. > SORT/THREAD do not incorporate searching; instead, they use the searching > mechanism provided by SEARCH. An extension to SEARCH automatically extends > SORT/THREAD. A change to SORT/THREAD does not alter SEARCH. This is modular. > > The current VIEW specification does output subsetting. VIEW does not > incorporte ordering; instead, it uses the ordering functionality provided by > SORT/THREAD. An extension to SORT/THREAD automatically extends VIEW. A > change to VIEW does not alter SORT/THREAD or SEARCH. This is modular. Exactly. The point is that any component should be upgradable without affecting the other components. If scalability issues (real, not perceived) with SORT/THREAD arise, then they can be addressed independently of VIEW. That being said, I *might* be inclined to concede that toplevel SORT/THREAD might not scale well enough to handle 100,000 messages mailboxes on a handheld. However I would assert that toplevel SORT/THREAD is the wrong tool for the job. This application would be better served by VIEW. MORE IMPORTANTLY, I would also assert that VIEW is the wrong tool for a 10 message mailbox. The overhead on the server for setting up and maintaining the view is unnecessary, not to mention the wasted network bandwidth caused by the FETCHes. Toplevel SORT/THREAD is the right tool for this job. The mailbox size at which one solution becomes better than the other can be debated, but I think BOTH have their place and the choice of when to use them should be left to the client vendor. The modular approach suggested by Mark (separate SORT, THREAD and VIEW) allows both of these solutions to peacefully coexist which ultimately benefits everyone. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id KAA02915 for ietf-imapext-bks; Thu, 24 Aug 2000 10:47:25 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA02910 for ; Thu, 24 Aug 2000 10:47:24 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id KAA09780; Thu, 24 Aug 2000 10:47:56 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id KAA17201; Thu, 24 Aug 2000 10:47:55 -0700 (PDT) Date: Thu, 24 Aug 2000 10:46:22 -0700 From: Chris Newman To: Larry Osterman , Mark Crispin cc: IMAP Extensions WG Subject: Re: Microsoft Canards Message-ID: <646118.3176102782@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Very sorry, I must have misremembered the quote attribution. The point I was trying to make is that smart and famous people often fail to predict the requirements for the future. Thus designing for scalability rather than for "what works today" is usually well worth the effort. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id CAA08747 for ietf-imapext-bks; Thu, 24 Aug 2000 02:14:45 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (resp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id CAA08743 for ; Thu, 24 Aug 2000 02:14:43 -0700 (PDT) Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Pete Resnick cc: Chris Newman , IMAP Extensions WG In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 24 Aug 2000 00:07:27 -0500, Pete Resnick wrote: > So, I expect that in the near future (if I am > provided with the tools), I will certainly have a single 100,000 > message mailbox in IMAP. We are certainly moving in that direction > with local-storage clients. There's a lot implied by "if I am provided with the tools". As matters stand, you'll have a hard time today finding a tool that handles a 1000 message mailbox well. > On a > locally indexed mailbox of 100,000 messages, I could write the code > to do this with ease. I cannot do this (in any efficient way) with > the current tools available to me in IMAP. Do you have that code for a locally index mailbox of 100,000 messages today? What makes you conclude that embedding SORT and THREAD into VIEW will make it possible to do it in IMAP? > The point you miss is that until servers implement it, client writers > (who are clearly foaming at the mouth for this technology) are stuck. This is all the more reason not to delay it any further by delaying proven solutions in favor of something that doesn't even have a prototype implementation yet. > There are comparatively few servers implementations out there > compared to client implementations, and even less of us are in your > enviable position of having control of the source code of one of the > widest deployed implementations of each. The server implementations which support SORT and THREAD are the most widely deployed servers. The same is true for the client. It is exceedingly simple to implement SORT and THREAD in the client. The only thing hard at the server end is to implement THREAD=REFERENCES. > SORT/THREAD will > be good enough for servers to provide most of the current crop of > clients (who are "grab all of the messages in this mailbox and > present them to the user" clients) with a "limping along" version of > these features, but will preclude certain kinds of clients from > getting implemented: The longer that "grab all the messages" clients > can limp along, the more likely the technology will become > entrenched, even if it is inferior. This argument doesn't wash. I doubt that any of the "grab all of the messages in this mailbox" clients would use SORT/THREAD. There's no point to doing so; it's downloaded all of the messages and can do whatever sorting or threading it wants locally. I've traced what these clients do in their use of IMAP; they are POP clients that babble IMAP. They don't even leverage the basic features of IMAP. I am not just a server implementor. I've written multiple independent client implementations. Most of the sophisticated IMAP clients use my code from the c-client library. I have some idea of how clients are written. > The corollary to the above scenario is that IMAP gets a bad wrap: In > a local-storage client, showing different views of huge mailstores is > fast and efficient; IMAP will be seen as slow and annoying by users > who want the same kinds of functionality on their IMAP clients. A different corollary is that I use a fast client which doesn't have these problems, and eschew slow clients that do things the wrong way. > We will get no operational experience with views. You won't get such operational experience by forcing it on people! Or, at least, you won't get the right kind of operational experience. > Agreed. That argues that we should tread carefully here and get > implementations of VIEW going so that we can figure out where the > warts are soon. Which in turn argues that top-level SORT and THREAD should progress. If you persist in the plan of forcing SORT/THREAD as part of VIEW, the result will be that VIEW will be rushed in order to address the pent-up demand for SORT and THREAD. The result will be a VIEW specification that sucks big time, and which we'll be stuck with forever because those pent-up implementations are now using it and will refuse to allow a change. My plan satisfies the pent-up demand for SORT/THREAD functionality now, and allows the careful design and implementation of VIEW. My plan does not preclude VIEW. My plan makes VIEW easier to design implement, by focusing its scope on the one specific task it needs to accomplish. My plan is supported by the people who have implemented SORT/THREAD today, and who not coincidentally are the only people who are doing anything about implementing VIEW today. Traditionally, working code has counted for more than votes in the IETF. I hope that has not changed. > Having a top-level SORT > or THREAD may be making the hunk so big as that it will not be > transferrable easily to another context; This is a red herring. Everything happens inside the server. If the server can handle the "hunk" in top-level SORT then it can handle it for VIEW. VIEW carves up the "hunks" prior to delivering them to the client. However, VIEW needs the entire "hunk" for scalability; otherwise there's no point to it. > it's always easier to > implement when you know that the context is "all of the messages in > this particular mailbox" instead of having to deal with a subsetting > operation in addition. Either I have horribly misinterpreted what you are saying, or you are horribly confused as to how SORT, THREAD, and VIEW work and interoperate. The current top-level SORT and THREAD always have had the capability to limit the messages which are sorted (input subsetting). Input subsetting is what controls the size of the "hunk". If that's what you're concerned about, you belong on the top-level SORT/THREAD bandwagon; your problems are solved and you might as well start writing code. This is not what VIEW does. VIEW does output subsetting; that is, subsetting of the results of SEARCH/SORT/THREAD for transmission to the client. The complete results are maintained on the server, so that the client can get other subsets later on. Output subsetting happens after all the sorting is completed, since it is on the results of the sort. You can't subset the output without first sorting all candidate messages. You have no way of knowing, prior to sorting, which messages will be in a particular subset of the results. Here's how they interoperate: INPUT OPTIONAL OUTPUT SUBSETTING -> ORDERING -> SUBSETTING (SEARCH) (SORT/THREAD) (VIEW) Note that the ordering step is optional; VIEW SEARCH is an example of doing output subsetting directly on input subsetting. The only thing mandatory is input subsetting. You have to do this, even if it's just to say "all messages in the mailbox". Fortunately, it's a low-cost operation to do it. The entire point of VIEW is to preserve the results of the "hunk" (the results of input subsetting, optionally modified by ordering) so that the server can get at pieces of the "hunk" readily to answer subsequent client requests without having to do the underlying input subsetting and ordering over again. Another important aspect of VIEW is to announce to the client the impact of new messages on the view. This also presupposes the server preserving the "hunk". > Embedding THREAD and SORT into VIEW guarantees > modularity since it must work in the context of both "the entire > mailbox" and "some subset of messages". This makes no sense either. The only thing that deals with the question of "the entire mailbox" vs. "some subset of messages" is input subsetting, which is already done as part of top-level SORT/THREAD. Embedding THREAD and SORT into VIEW forces all clients of sorting and threading to use VIEW, whether or not output subsetting is desired. Mandatory input subsetting in SORT and THREAD merely adds 10 octets (" UTF-8 ALL") to the command when that functionality is not desired; it otherwise has no ill effects. By comparison, embedding THREAD and SORT into view, when output sorting is not desired, adds orders of magnitude more IMAP protocol blather. Compare: a1 SORT (SUBJECT) UTF-8 ALL * SORT 10 9 8 7 6 5 4 3 2 1 a1 OK done! with a2 VIEW SET SORT (SUBJECT) UTF-8 ALL * 10 EXISTS 10 a2 OK done! a3 VIEW FETCH 1:* VIEW (or just "tag FETCH 1:* VIEW") * 1 FETCH (VIEW 10) * 2 FETCH (VIEW 9) * 3 FETCH (VIEW 8) * 4 FETCH (VIEW 7) * 5 FETCH (VIEW 6) * 6 FETCH (VIEW 5) * 7 FETCH (VIEW 4) * 8 FETCH (VIEW 3) * 9 FETCH (VIEW 2) * 10 FETCH (VIEW 1) a3 OK done! You are not going to convince me that the world is a better place for having the latter forced upon those of us who are using the former with great success today. It gets worse if you decide to use UIDs. We have UID SORT and UID THREAD. VIEW requires that you do "VIEW FETCH 1:* UID" or "UID FETCH 1:* VIEW" or perhaps "FETCH 1:* (VIEW UID)" (wow, three ways to do the same thing, a record!). Anyway, it will result in lots of * 1 FETCH (VIEW 10 UID 10230)" results. The benefit of using VIEW is exclusively in those cases where the more complex VIEW protocol to support the client's subset is smaller than what top-level will do to deliver the full "hunk". Such cases exist, and become more likely as the mailbox grows larger. But there are plenty of cases where VIEW is not the proper tool. There are more problems than just the excessive protocol blather caused by forcing the use of a subsetting mechanism when it isn't needed. There are also fundamental architectural problems. Embedding THREAD and SORT into VIEW creates a gigantic monolith that contains the disjoint functionalities of sorting, threading, and windowing, each piece of which depends upon all the others. It is impossible to extend any of these functionalities without changing the entire monolith. This is not modular. The SEARCH specification does input subsetting. This is leveraged by the current SORT/THREAD specifications, which orders the SEARCH results. SORT/THREAD do not incorporate searching; instead, they use the searching mechanism provided by SEARCH. An extension to SEARCH automatically extends SORT/THREAD. A change to SORT/THREAD does not alter SEARCH. This is modular. The current VIEW specification does output subsetting. VIEW does not incorporte ordering; instead, it uses the ordering functionality provided by SORT/THREAD. An extension to SORT/THREAD automatically extends VIEW. A change to VIEW does not alter SORT/THREAD or SEARCH. This is modular. > I do believe that standardizing THREAD > and SORT independent of VIEW does leave the possibility that we will > be stuck with a way of doing things that won't fit into VIEW. Please offer a specific scenario of how top-level SORT or THREAD, as currently specified, make it harder to implement VIEW. I believe that any such scenario is based upon a flawed understanding of how SORT, THREAD, and VIEW work. I am prepared to prove it. Top-level SORT and THREAD are proven designs, with production implementations in use for years. The alleged problems are disputed by all the implementors. VIEW (in any form) is not here yet. It is not likely to arrive for quite some time given the current discussion about redesigning it. There isn't even a prototype implementation of VIEW. Even though complete redesigns of VIEW have been proposed to address various problems (such as the chattiness noted above), none of those proposals require that SORT and THREAD be embedded in VIEW. There are no valid technical reasons given for why SORT and THREAD should be embedded in VIEW. There may be political reasons, but politics should not be the deciding factor. I understand that this is a complex topic, especially to folks who are reading the documents and haven't actually implemented any of this stuff. I'm asking you not to be taken in by specious claims that are in direct conflict with years of operational experience. The effects of a requirement that SORT and THREAD be embedded in VIEW are to delay standardized sorting and threading functionality to everybody for years to come, and to add needless complexity to client implementations that could otherwise use top-level SORT and THREAD. I don't think that you want this. If I can answer your questions or concerns about top-level SORT/THREAD satisfactorily, will you support their progress to standardization? Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id WAA28558 for ietf-imapext-bks; Wed, 23 Aug 2000 22:07:35 -0700 (PDT) Received: from episteme-software.com (resnick1.qualcomm.com [63.250.90.98]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id WAA28554 for ; Wed, 23 Aug 2000 22:07:31 -0700 (PDT) Received: from champdsl-25.mcleodusa.net (216.43.25.68) by episteme-software.com with ESMTP (Eudora Internet Mail Server 3.0.1); Thu, 24 Aug 2000 00:07:30 -0500 Mime-Version: 1.0 X-Sender: resnick@resnick1.qualcomm.com (Unverified) Message-Id: In-Reply-To: References: X-Mailer: Eudora [Macintosh version 5.0b10-09.00] Date: Thu, 24 Aug 2000 00:07:27 -0500 To: Mark Crispin From: Pete Resnick Subject: Re: SORT, THREAD, and VIEW Cc: Chris Newman , IMAP Extensions WG Content-Type: text/plain; charset="us-ascii" ; format="flowed" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: [Speaking as a group participant, not as chair.] On 8/23/00 at 2:00 PM -0700, Mark Crispin wrote: >The underlying assumptions in this claim are that: > 1) a user would want to deal browse through a flat object of 100,000 members > 2) the technology of palm devices will remain static > 3) the technology of radio will remain static. >None of these assumptions are valid. Assumption (1) is particularly absurd; >if it was valid, then why do we bother with non-INBOX mailboxes in IMAP! Nonsense. Assumption 1 is mistated. It is not that a user would want to browse through a flat object of 100,000 members; it is that a piece of client software would want to access a flat object of 100,000 members and allow the user to create different subsetted views of that data on different criteria. This is why you are seeing local-storage clients move toward either proprietary format databases or externally indexed collections of messages instead of flat text files: Users have so much mail now and so many ways of wanting to view it that permanently moving a single copy of a message into a particular file in a single hierarchical directory structure is not sufficient. One of those views of messages is likely to be "thread": I might want to have a virtual mailbox of a particular thread which might have 50 messages in it. Some number of those messages might also belong to a virtual mailbox of a particular annotation I have on a message. And it would be silly of me to split these messages up into different files; what I care about is the viewing criteria, not the underlying file storage mechanism. So, I expect that in the near future (if I am provided with the tools), I will certainly have a single 100,000 message mailbox in IMAP. We are certainly moving in that direction with local-storage clients. >Although the IMAP tools for browsing through mailboxes are good, there is a >messages/mailbox limit which has remained fairly constant even as IMAP servers >have become far more competant in handling large mailboxes. This limit is >established by the human user, not by hardware or impmentation. It is absolutely an implementation (or more to the point, a protocol) limitation. That I as a user can't deal with a serial list of 100,000 messages is not at issue. It's whether my client can present me with interesting subsets of such a mailbox in different views. On a locally indexed mailbox of 100,000 messages, I could write the code to do this with ease. I cannot do this (in any efficient way) with the current tools available to me in IMAP. >What harm does standardization SORT/THREAD do to you? > >There is no harm in standardizing SORT/THREAD to IMAP: > 1) if server-maintained views in IMAP are really important, then the VIEW > command will happen and be widely-implemented. The point you miss is that until servers implement it, client writers (who are clearly foaming at the mouth for this technology) are stuck. There are comparatively few servers implementations out there compared to client implementations, and even less of us are in your enviable position of having control of the source code of one of the widest deployed implementations of each. > 2) if SORT/THREAD are good enough, then the VIEW command won't happen or > won't be widely implemented. That's a misstatement of the claim. Point 2 is that SORT/THREAD will be good enough for servers to provide most of the current crop of clients (who are "grab all of the messages in this mailbox and present them to the user" clients) with a "limping along" version of these features, but will preclude certain kinds of clients from getting implemented: The longer that "grab all the messages" clients can limp along, the more likely the technology will become entrenched, even if it is inferior. We can all point to such experiences in this industry, both inside and outside of the IETF. The corollary to the above scenario is that IMAP gets a bad wrap: In a local-storage client, showing different views of huge mailstores is fast and efficient; IMAP will be seen as slow and annoying by users who want the same kinds of functionality on their IMAP clients. >Your concern seems to be that (2) would happen, and lead to a future crisis. >If future events (such a world where people routinely thread 100,000 message >mailboxes from a 4MB Palm via radio modem) demonstrate that server-maintained >views are essential, then nothing precludes the reintroduction of VIEW. The >benefit is that, this time, there would be actual operational experience. > >The result would be that the right specification of server-maintained views, >that addresses the actual needs, would happen. In the meantime, there would >be a great operational benefit from SORT/THREAD. It's a catch-22 though. We will not get to a time where people routinely thread 100,000 messages from a Palm because the technology is not available now on the server to make such a client even remotely plausible. What we will get is clients increasingly dependent on getting the entire list of messages from a mailbox because we continue to add commands which require that view of the world. We will get no operational experience with views. >The harm in adding ill-conceived server-based view functionality into >SORT/THREAD is that it is likely to be an albatross that sinks all sorting and >threading functionality. Agreed. That argues that we should tread carefully here and get implementations of VIEW going so that we can figure out where the warts are soon. >Some of the worst warts in Internet protocols were >attempts at solutions to problems that did not exist; when the real problem >was shown to exist, the earlier "solution" did not address it. The general problem, however, already does exist: We have a class of applications and functionality (small devices; "virtual mailbox" views) which cannot be addressed with current technology. We don't know for sure what the "real problem" is, though I think we have a pretty good idea. >It is for this reason that we use a modular design in which solutions address >a single problem. The claim is that you are not being modular enough. Modularity is not just about a single solution for a single problem; it's about making the hunks small enough so that a hunk can be reused and doesn't get specialized to solving a single problem only. Having a top-level SORT or THREAD may be making the hunk so big as that it will not be transferrable easily to another context; it's always easier to implement when you know that the context is "all of the messages in this particular mailbox" instead of having to deal with a subsetting operation in addition. Embedding THREAD and SORT into VIEW guarantees modularity since it must work in the context of both "the entire mailbox" and "some subset of messages". None of this is to say that we've got VIEW right. I don't know the answer to that question. But I do believe that standardizing THREAD and SORT independent of VIEW does leave the possibility that we will be stuck with a way of doing things that won't fit into VIEW. pr -- Pete Resnick Eudora Engineering - QUALCOMM Incorporated Ph: (217)337-6377 or (858)651-4478, Fax: (858)651-1102 Received: by ns.secondary.com (8.9.3/8.9.3) id UAA23098 for ietf-imapext-bks; Wed, 23 Aug 2000 20:22:43 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (pearl@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA23093 for ; Wed, 23 Aug 2000 20:22:42 -0700 (PDT) Date: Wed, 23 Aug 2000 20:16:21 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Hugh McIntyre cc: Chris Newman , IMAP Extensions WG In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 23 Aug 2000 20:13:38 -0700 (PDT), Hugh McIntyre wrote: > There is a rather important difference here though in that if I perform a > search on a mailbox I'm probably hoping to only get 10-20 matching messages > back. While if I perform a sort then I'm normally going to get the whole > mailbox. That all depends upon what you ask. Note that SORT is SEARCH with extra arguments. The client has the ability to decide what messages it wants to sort. Note that the bandwidth consumed by SORT results is modest for typical sized user mailboxes. SORT results for a 1000 message mailbox is just 3900 bytes. I have not encountered many IMAP clients that don't crash when a mailbox grows to more than a few hundred messages. Received: by ns.secondary.com (8.9.3/8.9.3) id UAA22998 for ietf-imapext-bks; Wed, 23 Aug 2000 20:13:20 -0700 (PDT) Received: from lukla.Sun.COM (lukla.Sun.COM [192.18.98.31]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA22994 for ; Wed, 23 Aug 2000 20:13:19 -0700 (PDT) Received: from engmail2.Eng.Sun.COM ([129.146.1.25]) by lukla.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id VAA05544; Wed, 23 Aug 2000 21:13:40 -0600 (MDT) Received: from frantic.Eng.Sun.COM (frantic.Eng.Sun.COM [129.144.137.28]) by engmail2.Eng.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id UAA11353; Wed, 23 Aug 2000 20:13:40 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by frantic.Eng.Sun.COM (8.9.3+Sun/8.8.8) with SMTP id UAA28674; Wed, 23 Aug 2000 20:13:39 -0700 (PDT) Date: Wed, 23 Aug 2000 20:13:38 -0700 (PDT) From: Hugh McIntyre Reply-To: Hugh McIntyre Subject: Re: SORT, THREAD, and VIEW To: Mark Crispin Cc: Chris Newman , IMAP Extensions WG In-Reply-To: "Your message with ID" Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: (Without making any comment either way on the rest of the argument): |> The SEARCH response, which has been in IMAP from inception, is dependent on |> the size of the mailbox in the way you contend. SORT is nothing more than a |> SEARCH with alternate ordering of the results. There is a rather important difference here though in that if I perform a search on a mailbox I'm probably hoping to only get 10-20 matching messages back. While if I perform a sort then I'm normally going to get the whole mailbox. Hugh. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id RAA17336 for ietf-imapext-bks; Wed, 23 Aug 2000 17:18:36 -0700 (PDT) Received: from DF-INET-1.dogfoodinternet.com (df-inet1.exchange.microsoft.com [131.107.8.8]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA17332 for ; Wed, 23 Aug 2000 17:18:34 -0700 (PDT) Received: from df-virus2.platinum.corp.microsoft.com ([172.30.236.33]) by DF-INET-1.dogfoodinternet.com with Microsoft SMTPSVC(5.0.2195.1600); Wed, 23 Aug 2000 17:17:54 -0700 Received: from 172.30.236.11 by df-virus2.platinum.corp.microsoft.com (InterScan E-Mail VirusWall NT); Wed, 23 Aug 2000 17:18:23 -0700 (Pacific Daylight Time) Received: from DF-SPOT.platinum.corp.microsoft.com ([172.30.236.99]) by yuri.dns.microsoft.com with Microsoft SMTPSVC(5.0.2195.2023); Wed, 23 Aug 2000 17:17:44 -0700 x-mimeole: Produced By Microsoft Exchange V6.0.4417.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C00D60.B7015F7C" Subject: Microsoft Canards Date: Wed, 23 Aug 2000 17:17:40 -0700 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: SORT, THREAD, and VIEW Thread-Index: AcANVyD8B9f/iOs5RziFVRhVSm004QACFZog From: "Larry Osterman" To: "Mark Crispin" , "Chris Newman" Cc: "IMAP Extensions WG" X-OriginalArrivalTime: 24 Aug 2000 00:17:44.0737 (UTC) FILETIME=[B98C3910:01C00D60] Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is a multi-part message in MIME format. ------_=_NextPart_001_01C00D60.B7015F7C Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable And I gotta step in here. >=20 > > I'll also note that when Bill Gates said that 640K was more than any > > computer would ever need, that it was certainly more than I=20 > could imagine > > needing at the time. >=20 > This is irrelevant. Personal computers bigger than 640K=20 > existed before the > founding of Microsoft. Timesharing systems with 10MB or more=20 > also existed at > that time. Bill Gates NEVER said any such thing. In fact, one of the first products for the PC that Microsoft produced (the Microsoft SmartCard(tm) was a RAM expansion board that would allow you to bump the PC's base memory from 256K to 768K (in its most maxed out configuration). It also added features like a battery backed clock, since IBM didn't add one until the PC/AT (ok, the PC/jr had a built-in clock, but who counts the PC/jr?). The decision to limit the user defined RAM on the original PC was an IBM hardware design decision - they needed to reserve a portion of the 1M physical address space (the 808x could only address 1M of memory) for memory mapped hardware and ROM units. They decided that 640K (10 times the default memory configuration of 64K) was more than enough memory for what was intended as a game machine - don't forget - the floppy drive was an ADD-ON for the original PC, and a hard disk (10 meg!) didn't come until the PC/XT in 1982 (when IBM bumped the default memory to 256K). And don't forget that it was Steve Jobs who said that a properly designed machine would NEVER require more than 128K of RAM. He also said that a properly designed machine wouldn't need a cooling fan, that's why the original MAC would melt down if you put a piece of paper on top of it. Larry Osterman Sent from larryo-laptop.dns.microsoft.com running NT5 and Outlook 2000 and Exchange Platinum! Please notify the sender of any difficulties. ------_=_NextPart_001_01C00D60.B7015F7C Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Microsoft Canards

And I gotta step in here.
>
> > I'll also note that when Bill Gates said = that 640K was more than any
> > computer would ever need, that it was = certainly more than I
> could imagine
> > needing at the time.
>
> This is irrelevant.  Personal computers = bigger than 640K
> existed before the
> founding of Microsoft.  Timesharing systems = with 10MB or more
> also existed at
> that time.

Bill Gates NEVER said any such thing.  In fact, = one of the first products for the PC that Microsoft produced (the = Microsoft SmartCard(tm) was a RAM expansion board that would allow you = to bump the PC's base memory from 256K to 768K (in its most maxed out = configuration).  It also added features like a battery backed = clock, since IBM didn't add one until the PC/AT (ok, the PC/jr had a = built-in clock, but who counts the PC/jr?).

The decision to limit the user defined RAM on the = original PC was an IBM hardware design decision - they needed to reserve = a portion of the 1M physical address space (the 808x could only address = 1M of memory) for memory mapped hardware and ROM units.  They = decided that 640K (10 times the default memory configuration of 64K) was = more than enough memory for what was intended as a game machine - don't = forget - the floppy drive was an ADD-ON for the original PC, and a hard = disk (10 meg!) didn't come until the PC/XT in 1982 (when IBM bumped the = default memory to 256K).

And don't forget that it was Steve Jobs who said that = a properly designed machine would NEVER require more than 128K of = RAM.  He also said that a properly designed machine wouldn't need a = cooling fan, that's why the original MAC would melt down if you put a = piece of paper on top of it.


Larry Osterman
Sent from larryo-laptop.dns.microsoft.com running NT5 = and Outlook 2000 and Exchange Platinum!  Please notify the sender = of any difficulties.

------_=_NextPart_001_01C00D60.B7015F7C-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id QAA15979 for ietf-imapext-bks; Wed, 23 Aug 2000 16:07:23 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (cecil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA15975 for ; Wed, 23 Aug 2000 16:07:22 -0700 (PDT) Date: Wed, 23 Aug 2000 14:00:01 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <5021320.3176025571@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 23 Aug 2000 13:19:31 -0700, Chris Newman wrote: > SORT and THREAD are blocked because there is a known scalability issue. There is no "known scalability issue". You claim that one exists, but that claim is not universally accepted. I reject it. At least three other individuals have rejected it. > A > couple years back we discussed a strawman to fix that problem without > waiting for VIEW: > SORT ... rest of sort command ... > * SORT ... subrange of sort response ... It was rejected for good reason. It is a solution to a problem that does not exist. It creates signficant new problems. It is inapplicable to THREAD (which is far more important than SORT). > With the possible exception of the EXPUNGE response, IMAP > network usage is not dependent on the size of the mailbox. The SEARCH response, which has been in IMAP from inception, is dependent on the size of the mailbox in the way you contend. SORT is nothing more than a SEARCH with alternate ordering of the results. > I'll also note that when Bill Gates said that 640K was more than any > computer would ever need, that it was certainly more than I could imagine > needing at the time. This is irrelevant. Personal computers bigger than 640K existed before the founding of Microsoft. Timesharing systems with 10MB or more also existed at that time. > Perhaps you're comfortable betting that 100,000 > messages is larger than a mailbox will ever be, but I'm not. We are not talking about a growth in technology, or in software. We are talking about what a human being will reasonably deal with as a single flat object. Specifically, you contend that a future user will have a flat mailbox containing 100,000 messages with no partitioning, and that such a user will use a current technology 4MB Palm device with a current technology radio modem to access it. The underlying assumptions in this claim are that: 1) a user would want to deal browse through a flat object of 100,000 members 2) the technology of palm devices will remain static 3) the technology of radio will remain static. None of these assumptions are valid. Assumption (1) is particularly absurd; if it was valid, then why do we bother with non-INBOX mailboxes in IMAP! Although the IMAP tools for browsing through mailboxes are good, there is a messages/mailbox limit which has remained fairly constant even as IMAP servers have become far more competant in handling large mailboxes. This limit is established by the human user, not by hardware or impmentation. Few IMAP clients work well beyond about 1000 messages; but I see the same limiting effects with clients that handle much larger mailboxes with aplomb. Our biggest mailbox users (a tiny minority) top off at about 5000-9000 messages per mailbox. I know from firsthand experience that Pine works well on a mailbox with 70,000 messages. The problem is that such a mailbox is overwhelming to the user. The user's first reaction is to break it up into more managable pieces. > So I will continue to actively oppose standardization of SORT/THREAD until > the defect is fixed either in the commands themselves or by combining them > with VIEW. What harm does standardization SORT/THREAD do to you? There is no harm in standardizing SORT/THREAD to IMAP: 1) if server-maintained views in IMAP are really important, then the VIEW command will happen and be widely-implemented. 2) if SORT/THREAD are good enough, then the VIEW command won't happen or won't be widely implemented. Either way, the problem is solved. Your concern seems to be that (2) would happen, and lead to a future crisis. If future events (such a world where people routinely thread 100,000 message mailboxes from a 4MB Palm via radio modem) demonstrate that server-maintained views are essential, then nothing precludes the reintroduction of VIEW. The benefit is that, this time, there would be actual operational experience. The result would be that the right specification of server-maintained views, that addresses the actual needs, would happen. In the meantime, there would be a great operational benefit from SORT/THREAD. I believe that there probably is a need for server-maintained views today. That is why I agreed to work on the VIEW specification. As specified today, SORT/THREAD do not preclude server-based views; and furthermore VIEW is designed with leverage of SORT/THREAD in mind. The harm in adding ill-conceived server-based view functionality into SORT/THREAD is that it is likely to be an albatross that sinks all sorting and threading functionality. Some of the worst warts in Internet protocols were attempts at solutions to problems that did not exist; when the real problem was shown to exist, the earlier "solution" did not address it. It is for this reason that we use a modular design in which solutions address a single problem. SORT/THREAD solve real problems that exist today. IMAP references threading is nearly two orders of magnitude more efficient than NNTP references threading. I have not heard any scalability arguments against standardization of the NNTP references threading mechanism. VIEW solves a problem that is speculated to exist. We don't know if the problem is real; nor do we have the operational experience to know that we have the right design for server-maintained views. Nevertheless, we are making a diligent effort at solving it, based upon a universal belief that server-maintained views are desirable. This effort would be enhanced by having the freedom to alter the VIEW design without impacting the existing, real-world, solutions to sorting and threading. It is bad design to bundle independent functionalities. It would be bad design to force server-maintained view functionality into the current independent search, sort, and thread functionalities. As long as these functionalities remain independent, we can tinker with server-maintained view functionality as needed without damaging the other functionalities. If, on the other hand, server-maintained view functionality is forced into the sorting and threading functionality, we are stuck with the implementation of that server-maintained view functionality. It will become impossible to change it in the future without also changing the sorting and threading functionality. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA13705 for ietf-imapext-bks; Wed, 23 Aug 2000 13:20:39 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA13701 for ; Wed, 23 Aug 2000 13:20:38 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA15190; Wed, 23 Aug 2000 13:21:05 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA23590; Wed, 23 Aug 2000 13:21:05 -0700 (PDT) Date: Wed, 23 Aug 2000 13:19:31 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <5021320.3176025571@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.4 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 19:38 -0700 Mark Crispin wrote: > This discussion has convinced me that the concept of VIEW is still > extremely immature and must undergo experimentation (at least one > implementation!) before it is advanced. The pitfalls are not well > understood. That is a reasonable conclusion from this discussion. > The need for careful experimentation and testing of VIEW should not be > used to block advancement of SORT and THREAD. SORT and THREAD are > proven, available today, and working in production code. SORT and THREAD > are much simpler and can be deployed now. SORT and THREAD do not > preclude a viable VIEW specification; in fact, it would be relatively > simple to add VIEW to an implementation wthat uses SORT and THREAD. SORT and THREAD are blocked because there is a known scalability issue. A couple years back we discussed a strawman to fix that problem without waiting for VIEW: SORT ... rest of sort command ... * SORT ... subrange of sort response ... If you wish them to be standardized without VIEW, then add that fix (adjusting syntax as you wish) and you increase the chances significantly. It moves the scalability problem from a protocol design error to a server implementation detail. > The claims of "non-scalability" are still theoretical in nature only. > They have not been experienced by the existing implementations of SORT > and THREAD. On the contrary; SORT and THREAD are proven major performance > winners. I have never denied that SORT and THREAD are an improvement over unextended IMAP. But just because something is an improvement does not mean it is ready for standardization. A proposed standard is required to have no known defects. With the possible exception of the EXPUNGE response, IMAP network usage is not dependent on the size of the mailbox. It is a defect of SORT/THREAD that the performance of those commands depends on the size of the mailbox. I'll also note that when Bill Gates said that 640K was more than any computer would ever need, that it was certainly more than I could imagine needing at the time. Perhaps you're comfortable betting that 100,000 messages is larger than a mailbox will ever be, but I'm not. Indeed I'd like to see IMAP used more for permanent list archives and I'm sure there will be many lists which get more than 100,000 posts in their lifetime. So I will continue to actively oppose standardization of SORT/THREAD until the defect is fixed either in the commands themselves or by combining them with VIEW. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id UAA17347 for ietf-imapext-bks; Fri, 18 Aug 2000 20:01:23 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (clam@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA17343 for ; Fri, 18 Aug 2000 20:01:22 -0700 (PDT) Date: Fri, 18 Aug 2000 19:38:37 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Lawrence Greenfield cc: Cyrus Daboo , Steve Hubert , IMAP Extensions WG In-Reply-To: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 21:54:59 -0400, Lawrence Greenfield wrote: > Is there another advantage of fetching the full map besides the > ability to retain cached information? In the case of threads, you may want to know about the overall thread tree instead of just a piece of it. It will be quite difficult for many forms of thread interface to do something reasonable with less than the full tree. I don't know of any client which has done it. This discussion has convinced me that the concept of VIEW is still extremely immature and must undergo experimentation (at least one implementation!) before it is advanced. The pitfalls are not well understood. People are talking about radical changes to the design to answer objections; radical enough changes to require a complete review from the bottom up. I see no purpose for these radical changes other than to prevent the advancement of any means of sorting or threading that doesn't use VIEW. This is a not a good way to design a protocol. It is an excellent way to make serious mistakes. The need for careful experimentation and testing of VIEW should not be used to block advancement of SORT and THREAD. SORT and THREAD are proven, available today, and working in production code. SORT and THREAD are much simpler and can be deployed now. SORT and THREAD do not preclude a viable VIEW specification; in fact, it would be relatively simple to add VIEW to an implementation wthat uses SORT and THREAD. The claims of "non-scalability" are still theoretical in nature only. They have not been experienced by the existing implementations of SORT and THREAD. On the contrary; SORT and THREAD are proven major performance winners. The other argument that I've heard against advancing SORT and THREAD is a vague fear that, if standardized, SORT and THREAD would prove good enough; so there would no longer be an impetus to do anything about VIEW. That is not a valid argument. It is instead an argument to abandon the current specification of VIEW and start over. Put another way: if VIEW is really that weak, it deserves to die. This will give impetus to anyone who still wants it to come up with a stronger specification that will succeed. Received: by ns.secondary.com (8.9.3/8.9.3) id SAA11304 for ietf-imapext-bks; Fri, 18 Aug 2000 18:55:05 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA11300 for ; Fri, 18 Aug 2000 18:55:04 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7J1sxg12190; Fri, 18 Aug 2000 21:55:00 -0400 Date: Fri, 18 Aug 2000 21:54:59 -0400 Message-Id: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Cyrus Daboo , Steve Hubert Cc: IMAP Extensions WG In-reply-to: Subject: Re: SORT, THREAD, and VIEW References: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT) From: Steve Hubert cc: IMAP Extensions WG Organization: University of Washington; Computing and Communications If the VIEW matches all the messages you're back to the O(n) problem. I can see where VIEW would be beneficial if done in conjunction with a SEARCH which limits the number of messages in the VIEW, but with SORT we are interested in all n messages. Either that, or you've got to do something like I was talking about using uids to paste VIEWs together so that the user doesn't know they are viewing only a subset. No! This is the crucial distinction with VIEW. You _don't_ narrow your VIEW to just the messages that fit on one page. You just fetch the messages that would fit on one page. For example: a000 SELECT INBOX .... * 3450 EXISTS a000 OK a001 VIEW SET SORT (SUBJECT) US-ASCII ALL * 3450 EXISTS 3450 a001 OK a002 VIEW FETCH 1:20 (ENVELOPE) * 43 FETCH (VIEW 1 ENVELOPE ...) * 23 FETCH (VIEW 2 ENVELOPE ...) ... client displays to user first twenty in sorted view ... a002 OK ... user scrolls a003 VIEW FETCH 21:40 (ENVELOPE) ... client displays to user the second twenty in sorted view ... * 87 FETCH (VIEW 21 ENVELOPE ...) ... a003 OK VIEW is useful _without_ narrowing. Notice in the example above the entire 3450 message map was never fetched. I think the flaw found in this conversation is that at this point in the protocol the client has fetched information about 40 messages scattered throughout the mailbox (43, 23, and 87, for instance). If the client changes VIEW now (say the user wants to see messasges sorted by sender) it would be good for the client to be able to use that cached information. Is there another advantage of fetching the full map besides the ability to retain cached information? Larry Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05438 for ietf-imapext-bks; Fri, 18 Aug 2000 17:39:19 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05434 for ; Fri, 18 Aug 2000 17:39:18 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id RAA10634; Fri, 18 Aug 2000 17:39:17 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7J0dFX23244; Fri, 18 Aug 2000 17:39:16 -0700 Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT) From: Steve Hubert To: Cyrus Daboo cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <3513213.3175618741@socrates.cyrusoft.com> Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000, Cyrus Daboo wrote: > --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert > wrote: > > > The user wants to view the entire mailbox, though they are only looking at > > a page at a time, so perhaps the VIEW would be a single page of the sort > > results. > > No - you would do a VIEW that matches all the messages in the mailbox but > sets the sort order to whatever is required. Then you access each message > via view position numbers. The client will 'cache' messages as needed for > its display as the user scrolls their window. This is 'virtual scrollbars' > as opposed to 'paging'. If the VIEW matches all the messages you're back to the O(n) problem. I can see where VIEW would be beneficial if done in conjunction with a SEARCH which limits the number of messages in the VIEW, but with SORT we are interested in all n messages. Either that, or you've got to do something like I was talking about using uids to paste VIEWs together so that the user doesn't know they are viewing only a subset. I agree that you would typically set the VIEW to be all of the messages in this case in order to avoid some of the additional complexity that VIEW adds. Steve Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05355 for ietf-imapext-bks; Fri, 18 Aug 2000 17:32:57 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05351 for ; Fri, 18 Aug 2000 17:32:55 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id RAA03101; Fri, 18 Aug 2000 17:32:58 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id RAA02719; Fri, 18 Aug 2000 17:32:57 -0700 (PDT) Date: Fri, 18 Aug 2000 17:31:38 -0700 From: Chris Newman To: Cyrus Daboo , IMAP Extensions WG Subject: Re: VIEW too chatty Message-ID: <1895727.3175608698@nifty-jr.west.sun.com> In-Reply-To: <3223946.3175613932@socrates.cyrusoft.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 18:58 -0400 Cyrus Daboo wrote: > I think the proposed windowing mechanism would be too drastic and > complicated a change to VIEW. Agreed. I was having too much fun. :-) However, I will note the windowing mechanism included a solution to the "Client needs VIEW map" problem. We probably still need something like: tag VIEW MAP * VIEW MAP : ... or for threaded views: * VIEW MAP (+n ...) ... ( +n) > There is a radical solution to this (probably too radical for most > people): allow the meaning of the numbers at the start of 'message-data' > responses to be either a sequence number, a view position number or a UID > depending on what the client wants. Thus a client that only cares about > UIDs would switch server responses to UIDS: > > a SELECT INBOX (RESPOND UID) <- tell server to use UIDs in responses > ... > > * 21345 FETCH ... <- 21345 is the message UID not sequence > number * 21346 EXPUNGE <- 21346 is a UID > > The same could be done for view position numbers. That way a client that > prefers the view position number can tell the server to always send it, > without the overhead of the additional response. I'll need to think about this some more. It might be better as a separate extension, since it's useful without VIEW. I'll observe a simpler solution to the specific problem would be to return VIEW position numbers only when explicitly requested. In other words, VIEW FETCH ... doesn't return the VIEW position number unless the ... includes a VIEW fetch item. >> (4) Verbosity of "* VIEW" responses when many messages added. > > Right now we have a * VIEW for each change. We could compress this down > to a single * VIEW for all changes during the command in progress. > Something along the lines off: > > * VIEW (1:3,5) (10 11 15 16) (1:2,20) > > The three groups represent: > > 1) View positions of messages removed from the view > 2) Pairs of view positions for messages moving in the view > 3) View positions of new messages added to the view I like this. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA05087 for ietf-imapext-bks; Fri, 18 Aug 2000 17:17:16 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA05083 for ; Fri, 18 Aug 2000 17:17:15 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id UAA05338; Fri, 18 Aug 2000 20:16:23 -0400 (EDT) Date: Fri, 18 Aug 2000 20:19:01 -0400 From: Cyrus Daboo To: Steve Hubert cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <3513213.3175618741@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert wrote: > I guess my question is what happens when the user scrolls out of the VIEW. You can never 'scroll' out of the view. The view defines the set of messages that the user can see at any one time, though not all of those messages may be cached. Thus the view position number range defines the scroll range. > The user wants to view the entire mailbox, though they are only looking at > a page at a time, so perhaps the VIEW would be a single page of the sort > results. No - you would do a VIEW that matches all the messages in the mailbox but sets the sort order to whatever is required. Then you access each message via view position numbers. The client will 'cache' messages as needed for its display as the user scrolls their window. This is 'virtual scrollbars' as opposed to 'paging'. > In the top-level SORT case, we would just fetch the data we need > based on the sort map we've already gotten from the server. In the > integrated SORT/VIEW case we have to establish a new VIEW and ask the > server to sort again, no? We'll also have to use uids somehow to place the > "cursor" on the same current message and paste the old and new views > together, since the view sequence numbers won't tell us anything about > that. If we wish to cache results of the fetches we'll have to get uids > and cache based on uid and we'll have to map back and forth between view > numbers and uids. Am I thinking about it correctly, is that the way it is > designed to be used? View clients will need a map if they don't want to refetch messages they might already have when resetting a view (or initiating a view in the case of a disconnected client). But they don't need to get the whole map, only the part of the map for the messages actually visible to the user is required. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id RAA04894 for ietf-imapext-bks; Fri, 18 Aug 2000 17:07:34 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA04890 for ; Fri, 18 Aug 2000 17:07:33 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id RAB24730; Fri, 18 Aug 2000 17:07:35 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id RAA00708; Fri, 18 Aug 2000 17:07:32 -0700 (PDT) Date: Fri, 18 Aug 2000 17:06:13 -0700 From: Chris Newman To: Steve Hubert , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1803970.3175607173@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 15:04 -0700 Steve Hubert wrote: > As a client developer (pine) one of the things I hope for in extensions is > simplicity. We already have two ways to refer to messages, uids and > sequence numbers. I don't want to have to keep track of a third. You already do, when you pull down SORT results. > The last proposed solution to the problem made my skin go pale. Sorry 'bout that. I know it was too complex, I was just having too much fun :-) > While I've got you, could someone explain how VIEW would be used to allow > a user to sort a mailbox and then scroll through it? How would you do this > so that it was snappy and didn't have the O(n) problem? Thanks. How do you do scalable windowing on an unsorted IMAP mailbox? You fetch information in sub-ranges by seqno. With a SORTed mailbox you use VIEW the same way -- do the VIEW SET SORT and fetch information in sub-ranges by view position. Even better, you get notified where new messages go in your view and don't have to re-issue the SORT command (wasting a round-trip and O(n) network bandwidth) for every new delivery. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id RAA04828 for ietf-imapext-bks; Fri, 18 Aug 2000 17:05:06 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id RAA04824 for ; Fri, 18 Aug 2000 17:05:05 -0700 (PDT) Received: from ppp4.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7J04YA04884; Fri, 18 Aug 2000 20:04:34 -0400 Message-ID: <399DCF96.B11E2BBB@oceana.com> Date: Fri, 18 Aug 2000 20:06:46 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Newman CC: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1395622.3175600383@nifty-jr.west.sun.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Chris Newman wrote: > > --On Friday, August 18, 2000 16:54 -0400 Ken Murchison > wrote: > > Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: > > > > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > > do some magical handwaving that would make it technically superior to a > > (potentially revised) toplevel SORT/THREAD? > > If I understand your question, you're asking for the technical difference > between a VIEW command which has extensible subcommands and a VIEW command > which has extensible subcommands which must also be top-level commands. > > The technical difference is that the latter requires the presence of a > top-level command, even if that top-level command wouldn't be useful. Putting aside any philosophical differences over whether toplevel SORT/THREAD is useful: In a back-asswards way I was attempting to get a consensus that the toplevel SORT/THREAD (with whatever additional sort keys and threading algorithms a deemed necessary) *could* be used with VIEW to perform the desired functions. If it turns out that the embedded SORT/THREAD would be so technically different or superior that toplevel SORT/THREAD couldn't be used, then we could short-circuit a lot of this discussion right now. I don't think this is the case, but want to see if anybody does. I'm fairly confident that a single SORT/THREAD engine in a server can be used for both VIEW and toplevel commands. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04356 for ietf-imapext-bks; Fri, 18 Aug 2000 16:50:47 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04348 for ; Fri, 18 Aug 2000 16:50:46 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id QAA25552; Fri, 18 Aug 2000 16:50:42 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7INofi21729; Fri, 18 Aug 2000 16:50:42 -0700 Date: Fri, 18 Aug 2000 16:50:40 -0700 (PDT) From: Steve Hubert To: Cyrus Daboo cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <3161821.3175612899@socrates.cyrusoft.com> Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000, Cyrus Daboo wrote: > The O(n) problem only comes with the SORT response. Once the client has the > SORT map, or has initiated a view, the set of commands it issues will > effectively be the same, i.e. at that point it is just filling its message > cache with messages in sorted order in response to user scroll actions. For > view clients this is done by using VIEW FETCH with ranges of view position > numbers (1:10 then 11:20 etc). For SORT clients, they have to use the > sorted sequence or UID numbers. In both cases the client gets only what it > needs, except for the SORT response which returns the entire map. I guess my question is what happens when the user scrolls out of the VIEW. The user wants to view the entire mailbox, though they are only looking at a page at a time, so perhaps the VIEW would be a single page of the sort results. In the top-level SORT case, we would just fetch the data we need based on the sort map we've already gotten from the server. In the integrated SORT/VIEW case we have to establish a new VIEW and ask the server to sort again, no? We'll also have to use uids somehow to place the "cursor" on the same current message and paste the old and new views together, since the view sequence numbers won't tell us anything about that. If we wish to cache results of the fetches we'll have to get uids and cache based on uid and we'll have to map back and forth between view numbers and uids. Am I thinking about it correctly, is that the way it is designed to be used? Steve Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02953 for ietf-imapext-bks; Fri, 18 Aug 2000 15:57:08 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02949 for ; Fri, 18 Aug 2000 15:57:07 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA05139; Fri, 18 Aug 2000 18:56:10 -0400 (EDT) Date: Fri, 18 Aug 2000 18:58:52 -0400 From: Cyrus Daboo To: Chris Newman , IMAP Extensions WG Subject: Re: VIEW too chatty Message-ID: <3223946.3175613932@socrates.cyrusoft.com> In-Reply-To: <802267.3175590518@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 12:28 PM -0700 Chris Newman wrote: > There seems to be agreement that VIEW is too chatty. So perhaps we > should fix that _before_ we deploy it. Here are some "chatiness" > problems with the current VIEW proposal which can't be solved by a > general purpose compression layer: I think the proposed windowing mechanism would be too drastic and complicated a change to VIEW. There are other things we can do to the existing responses to make them less chatty. Here are some examples: > (1) Untagged VIEW responses for messages the client doesn't care about. Given that a server can send unsolicted FETCH's for messages a client is not interested in anyway, I think the overhead of this is not as bad as you might think. Particularly if my solution to (4) is used. > (2) Inclusion of VIEW position in FETCH responses even if the client has > the resources to cache that information. There is a radical solution to this (probably too radical for most people): allow the meaning of the numbers at the start of 'message-data' responses to be either a sequence number, a view position number or a UID depending on what the client wants. Thus a client that only cares about UIDs would switch server responses to UIDS: a SELECT INBOX (RESPOND UID) <- tell server to use UIDs in responses ... * 21345 FETCH ... <- 21345 is the message UID not sequence number * 21346 EXPUNGE <- 21346 is a UID The same could be done for view position numbers. That way a client that prefers the view position number can tell the server to always send it, without the overhead of the additional response. > (4) Verbosity of "* VIEW" responses when many messages added. Right now we have a * VIEW for each change. We could compress this down to a single * VIEW for all changes during the command in progress. Something along the lines off: * VIEW (1:3,5) (10 11 15 16) (1:2,20) The three groups represent: 1) View positions of messages removed from the view 2) Pairs of view positions for messages moving in the view 3) View positions of new messages added to the view This removes both UIDs and sequence numbers from the original * VIEW response. > (5) Inclusion of UIDs in VIEW/EXPUNGE responses even if the client > doesn't use UIDs. My suggestions for (4) takes care of VIEW, and the 'radical' suggestion for (2) takes care of EXPUNGE! -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02618 for ietf-imapext-bks; Fri, 18 Aug 2000 15:40:04 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02614 for ; Fri, 18 Aug 2000 15:40:03 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA05105; Fri, 18 Aug 2000 18:38:57 -0400 (EDT) Date: Fri, 18 Aug 2000 18:41:39 -0400 From: Cyrus Daboo To: Steve Hubert , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <3161821.3175612899@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 3:04 PM -0700 Steve Hubert wrote: > If we could keep the VIEW extension as orthogonal as possible to the SORT > and THREAD extensions we would solve real-world problems now in a > straight-forward way, and leave the mega-mailbox problem solving separate. > I'm strongly in favor of decoupling SORT and THREAD from VIEW so that they > may be used without having to invoke the VIEW machinery. The SORT extension as it stands only provides a static sort. When new messages arrive the client has to re-issue the sort command. Similarly when message state changes the client would have to reissue the sort to see whether the message moved or dropped our of view (assuming the search criteria was used with SORT). VIEW, on the other hand, provides for static, semi-dynamic or fully dynamic updates from the server (depending on how the client uses the \VIEW flag), without the need to get the full map each time. There are situations where this will be more efficient than getting the map. There are other situations where the map will be more efficient, at least based on the current 'chatty' view design. > While I've got you, could someone explain how VIEW would be used to allow > a user to sort a mailbox and then scroll through it? How would you do this > so that it was snappy and didn't have the O(n) problem? Thanks. The O(n) problem only comes with the SORT response. Once the client has the SORT map, or has initiated a view, the set of commands it issues will effectively be the same, i.e. at that point it is just filling its message cache with messages in sorted order in response to user scroll actions. For view clients this is done by using VIEW FETCH with ranges of view position numbers (1:10 then 11:20 etc). For SORT clients, they have to use the sorted sequence or UID numbers. In both cases the client gets only what it needs, except for the SORT response which returns the entire map. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02201 for ietf-imapext-bks; Fri, 18 Aug 2000 15:14:22 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02197 for ; Fri, 18 Aug 2000 15:14:21 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id PAA12678; Fri, 18 Aug 2000 15:14:23 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id PAA22785; Fri, 18 Aug 2000 15:14:23 -0700 (PDT) Date: Fri, 18 Aug 2000 15:13:03 -0700 From: Chris Newman To: Ken Murchison cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1395622.3175600383@nifty-jr.west.sun.com> In-Reply-To: <399DA299.D0EDCFEB@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 16:54 -0400 Ken Murchison wrote: > Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: > > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > do some magical handwaving that would make it technically superior to a > (potentially revised) toplevel SORT/THREAD? If I understand your question, you're asking for the technical difference between a VIEW command which has extensible subcommands and a VIEW command which has extensible subcommands which must also be top-level commands. The technical difference is that the latter requires the presence of a top-level command, even if that top-level command wouldn't be useful. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id PAA02030 for ietf-imapext-bks; Fri, 18 Aug 2000 15:04:27 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA02026 for ; Fri, 18 Aug 2000 15:04:26 -0700 (PDT) Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.100.202]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id PAA27327 for ; Fri, 18 Aug 2000 15:04:27 -0700 Received: from localhost (hubert@localhost) by shiva2.cac.washington.edu (8.10.1+UW00.04/8.10.1+UW00.04) with ESMTP id e7IM4PD16804 for ; Fri, 18 Aug 2000 15:04:26 -0700 Date: Fri, 18 Aug 2000 15:04:19 -0700 (PDT) From: Steve Hubert To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: Message-ID: Organization: University of Washington; Computing and Communications MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: As a client developer (pine) one of the things I hope for in extensions is simplicity. We already have two ways to refer to messages, uids and sequence numbers. I don't want to have to keep track of a third. If all I want to do is sort a mailbox and let the user scroll through it, I don't want to have to jump through several layers of indirection and complexity to do that. The last proposed solution to the problem made my skin go pale. There is an enormous amount of complexity there to solve a problem that we have yet to run into in real life. If we could keep the VIEW extension as orthogonal as possible to the SORT and THREAD extensions we would solve real-world problems now in a straight-forward way, and leave the mega-mailbox problem solving separate. I'm strongly in favor of decoupling SORT and THREAD from VIEW so that they may be used without having to invoke the VIEW machinery. While I've got you, could someone explain how VIEW would be used to allow a user to sort a mailbox and then scroll through it? How would you do this so that it was snappy and didn't have the O(n) problem? Thanks. -- Steve Hubert Pine Team, Univ. of Washington, Seattle Received: by ns.secondary.com (8.9.3/8.9.3) id PAA01913 for ietf-imapext-bks; Fri, 18 Aug 2000 15:00:30 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA01905 for ; Fri, 18 Aug 2000 15:00:27 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA05043; Fri, 18 Aug 2000 17:59:27 -0400 (EDT) Date: Fri, 18 Aug 2000 18:02:06 -0400 From: Cyrus Daboo To: Mark Crispin cc: Ken Murchison , Chris Newman , IMAP Extensions WG Subject: VIEW and THREAD, was Re: SORT, THREAD, and VIEW Message-ID: <3019107.3175610526@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 2:39 PM -0700 Mark Crispin wrote: >> THREAD is a much more complicated issue. The way VIEW is designed now it >> allows hierarchical view position numbers > > THREAD is also completely hierarchical. > > If anything, VIEW doesn't quite handle threads very well, because it > tends to encourage an assumption of a flat view identifier space even > though threads are not flat. We have left the view position number syntax open so that we can have hierarchical view position numbers, e.g. '1.2', '2.4.5' etc. Isn't that enough to express hierarchy? The problem comes in ensuring that clients can specify ranges of hierarchy when doing fetches, but I think that's doable. e.g. VIEW FETCH 1:10 - fetch the first message at the top of the first ten threads VIEW FETCH 1.1:1.% - fetch all of the messages one level down in the first thread VIEW FETCH 1.1:1.%.% - fetch all of the messages in the first two levels down in the first thread VIEW FETCH 1,1.1:1.* - fetch all messages in the first thread The other problem comes in letting clients know when there are sub-hierarchies in each thread and how many messages there are in the sub-hierarchy. A fetch data item 'THREAD ' would work. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01637 for ietf-imapext-bks; Fri, 18 Aug 2000 14:41:56 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (noodle@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01633 for ; Fri, 18 Aug 2000 14:41:55 -0700 (PDT) Date: Fri, 18 Aug 2000 14:39:49 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Cyrus Daboo cc: Ken Murchison , Chris Newman , IMAP Extensions WG In-Reply-To: <2898802.3175608526@socrates.cyrusoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 17:28:46 -0400, Cyrus Daboo wrote: > THREAD is a much more complicated issue. The way VIEW is designed now it > allows hierarchical view position numbers THREAD is also completely hierarchical. If anything, VIEW doesn't quite handle threads very well, because it tends to encourage an assumption of a flat view identifier space even though threads are not flat. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01510 for ietf-imapext-bks; Fri, 18 Aug 2000 14:27:05 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01502 for ; Fri, 18 Aug 2000 14:27:03 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA04985; Fri, 18 Aug 2000 17:26:07 -0400 (EDT) Date: Fri, 18 Aug 2000 17:28:46 -0400 From: Cyrus Daboo To: Ken Murchison , Chris Newman cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <2898802.3175608526@socrates.cyrusoft.com> In-Reply-To: <399DA299.D0EDCFEB@oceana.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 4:54 PM -0400 Ken Murchison wrote: > I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel > SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. > VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW > will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD > do some magical handwaving that would make it technically superior to a > (potentially revised) toplevel SORT/THREAD? As far as sort is concerned, no. Its always been our intention to base the VIEW=SORT behaviour on Mark's SORT command, using the same keys etc, though possibly extending the keys in use. THREAD is a much more complicated issue. The way VIEW is designed now it allows hierarchical view position numbers and the intent is to allow clients to do 'hierarchy descovery' on the message thread hierarchy, in a similar way that clients nowadays do LISTs. Also presenting the thread information and allowing users to navigate through interdependent threads is very much a UI issue. It may well be that the way the UIs are implemented will drive the VIEW=THREAD spec more so than VIEW=SORT. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA01270 for ietf-imapext-bks; Fri, 18 Aug 2000 14:10:25 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA01266 for ; Fri, 18 Aug 2000 14:10:23 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA04962; Fri, 18 Aug 2000 17:09:26 -0400 (EDT) Date: Fri, 18 Aug 2000 17:12:08 -0400 From: Cyrus Daboo To: Mark Crispin cc: Chris Newman , IMAP Extensions WG Subject: Client needs VIEW map, was Re: SORT, THREAD, and VIEW Message-ID: <2838756.3175607528@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 4:12 PM -0700 Mark Crispin wrote: > You can't cache by view specifier, because you'd be obliged to purge the > cache if you change the view. So you cache by message numbers or UID, and > need to map between view specifier and message number/UID. This comment by Mark is spot on and explains why getting a map is important for a client, at least thats what I now believe. If a view is reset (e.g. the user changes sort order) the client should not be forced to refetch all the envelopes for messages it already has. Since the view positions will change on a reset, but UID/message number does not, the sensible way to handle this problem is to cache say the UIDs, and then recover the view->UID map after the reset. This is also true of disconnected clients that have a local store indexed by UID and need to map those to server view positions when a view is first created. One of the objections to SORT is that it always returns the entire map. Well, here's an alternative proposal for using SORT while a VIEW is in effect that allows a client to get part of the map. When a view is in effect we allow a SORT command to be issued. The SORT/UID SORT command without any sort keys returns the message number/UID map in the current sort order of the view. We then introduce a new VIEWPOS search criteria that takes a view position number range (similar to the UID search criteria). This now allows a client to get a 'window' on the entire sort map: a VIEW SET SEARCH ALL SORT SIZE ... ... a UID SORT VIEWPOS 1:10 * SORT 1234 1235 1236 ... The above SORT command would return the UIDs of the first ten messages in sorted order in the view. Changing the VIEWPOS range would allow successive parts of the view position->UID map to be retrieved by the client. So this combination of VIEW and SORT gives an effective SORT command that supports 'windowing' of sort results. I think this would address the specific scalability issue with SORT by itself. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01108 for ietf-imapext-bks; Fri, 18 Aug 2000 13:59:34 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01104 for ; Fri, 18 Aug 2000 13:59:33 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7IKx2A31827; Fri, 18 Aug 2000 16:59:02 -0400 Message-ID: <399DA299.D0EDCFEB@oceana.com> Date: Fri, 18 Aug 2000 16:54:49 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Newman CC: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1058507.3175594779@nifty-jr.west.sun.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Chris Newman wrote: > > --On Friday, August 18, 2000 14:04 -0400 Ken Murchison > wrote: > > In an effort to settle at least one issue here (at least in my own > > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > > for sake of argument that the current SORT/THREAD will be updated to > > meet the needs of VIEW. > > VIEW+SORT/THREAD *is* a superior algorithm to bare SORT/THREAD with respect > to scalable handling of a sorted mailbox. Just as quicksort is superior to > bubble sort. I guess I wasn't clear yet again :( Assuming that VIEW+SORT/THREAD is VIEW with embedded SORT/THREAD: I wasn't looking for a comparison of VIEW+SORT/THREAD vs. toplevel SORT/THREAD. I was looking for a comparison of VIEW+SORT/THREAD vs. VIEW which uses toplevel SORT/THREAD (ie, in the same manner that VIEW will use toplevel SEARCH). Specifically, will the embedded SORT/THREAD do some magical handwaving that would make it technically superior to a (potentially revised) toplevel SORT/THREAD? Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00855 for ietf-imapext-bks; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00851 for ; Fri, 18 Aug 2000 13:40:55 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA29063; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA15264; Fri, 18 Aug 2000 13:40:56 -0700 (PDT) Date: Fri, 18 Aug 2000 13:39:39 -0700 From: Chris Newman To: Ken Murchison , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1058507.3175594779@nifty-jr.west.sun.com> In-Reply-To: <399D7AC9.AB39D48@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Friday, August 18, 2000 14:04 -0400 Ken Murchison wrote: > In an effort to settle at least one issue here (at least in my own > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > for sake of argument that the current SORT/THREAD will be updated to > meet the needs of VIEW. VIEW+SORT/THREAD *is* a superior algorithm to bare SORT/THREAD with respect to scalable handling of a sorted mailbox. Just as quicksort is superior to bubble sort. However, a poorly implemented quicksort algorithm applied to a nearly sorted list is inferior in practice to a well-implemented bubble sort algorithm applied to the same list. I believe through this discussion we have determined that the current VIEW proposal is poorly executed. Therefore I consider this discussion to have been extremely productive and I have proposed a strawman to fix VIEW. The strawman VIEW is superior to toplevel SORT/THREAD in network bandwidth, network round-trips and is vastly superior in client memory requirements. It is admittedly more complex, but the complexity benefits the client/network at the expense of the server and thus can be justified. It eliminates both the relevant* recalculation problem and uses a scalable mechanism unlike bare SORT/THREAD. - Chris * - the problem related to the extra round trip and O(n) network transfer bare SORT/THREAD requires for a client to know where to insert new messages in the view. Problems with a specific implementation are not relevant to this forum. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00386 for ietf-imapext-bks; Fri, 18 Aug 2000 13:04:23 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00381 for ; Fri, 18 Aug 2000 13:04:22 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA09768; Fri, 18 Aug 2000 13:01:44 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA12163; Fri, 18 Aug 2000 13:01:42 -0700 (PDT) Date: Fri, 18 Aug 2000 13:00:23 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <916836.3175592423@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:19 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 13:10:01 -0700, Chris Newman wrote: >> Take a mailbox with 100,000 messages. Now suppose you want to sort the >> view on your Palm device. > > How many Palm device MUAs handle 100,000 message mailboxes? I believe Lawrence has a cell phone or palm client that can do it as long as the mailbox is displayed in seqnum order. > How many IMAP clients, on any platform, handle 100,000 message mailboxes? This is not a forum to debate weaknesses of current implementations. > 100,000 message mailboxes are not a reflection of the world today, or the > likely world in the future. And no computer will ever need more than 640K of RAM. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id MAA29509 for ietf-imapext-bks; Fri, 18 Aug 2000 12:33:18 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA29505 for ; Fri, 18 Aug 2000 12:33:17 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA24818; Fri, 18 Aug 2000 12:33:16 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA09566; Fri, 18 Aug 2000 12:29:58 -0700 (PDT) Date: Fri, 18 Aug 2000 12:28:38 -0700 From: Chris Newman To: IMAP Extensions WG , Cyrus Daboo Subject: VIEW too chatty Message-ID: <802267.3175590518@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: There seems to be agreement that VIEW is too chatty. So perhaps we should fix that _before_ we deploy it. Here are some "chatiness" problems with the current VIEW proposal which can't be solved by a general purpose compression layer: (1) Untagged VIEW responses for messages the client doesn't care about. (2) Inclusion of VIEW position in FETCH responses even if the client has the resources to cache that information. (3) Failure to take advantage of THREAD hierarchy knowledge when possible. (4) Verbosity of "* VIEW" responses when many messages added. (5) Inclusion of UIDs in VIEW/EXPUNGE responses even if the client doesn't use UIDs. Strawman follows: To fix (1), the client needs a way to express which subset of the view it is cacheing for potential display. So we introduce the "WINDOW" command and modifier to VIEW SET: VIEW SET (WINDOW ) ... VIEW WINDOW Where is a VIEW position. If is 0 and/or is *, then client is interested in messages outside the view. Now we can suppress untagged VIEW responses for messages outside the window (a caveat will be discussed below). To fix (2), the client has to inform the server whether it is doing the VIEW dynamically, or caching the relevant VIEW subsets. It turns out it's easy to fix (3) at the same time. Here's how: If the "CACHENOW" modifier is included in the "VIEW SET" command, then the VIEW position is not included in FETCH responses (unless explicitly asked for via "FETCH (ENVELOPE VIEW)"). In addition, after the VIEW SET and VIEW WINDOW commands, the server returns the information of interest to the client: VIEW SET (CACHENOW (WINDOW )) ... * WINDOW : ... or with thread hierarchy: * WINDOW ( : ( +n)) ... The "+n" indicates there are "n" additional messages in that thread subtree which are outside the window. To minimize chatter, if the "WINDOW" command changes the WINDOW to a superset of the previous window, then the server is permitted to suppress window information from the previous WINDOW and if the "WINDOW" command changes to a subset, the untagged window response is suppressed. On to problem (4). Cyrus noted problem (4) also applies to EXPUNGE, so we may as well fix them both at the same time. To do this, we stop using untagged VIEW for new messages and suppress all untagged EXPUNGE responses when a view is active, and instead extend the untagged EXISTS response as follows: * EXISTS (EXPUNGE # # : ...) (NEW +n : -n) There are a few subtleties. The EXPUNGE list is evaluated in order, just like untagged expunge responses, and omits the # for messages outside the window. The "#" without a indicates the message expunged was lower than . NEW contains a list correlated to the new sequence numbers. The list contains either a view position, an ordered range of view positions, an indication that message(s) were added below the window ("+n"), or an indication that messages were added after the window or outside the view ("-n"). After that is an ordered list starting with the first sequence number not in the mailbox after the expunges were performed. This list can contain a view position, a range of view positions (useful when the VIEW is in a sort order which correlates well with s), an indication that one or more message appeared after the window (+n) or that one or more messages appeared before the window (-n). While we're at it, we can collapse the untagged VIEW response since it only contains moves: * MOVE - + : + : - + "+" means any position less that in view, "+" means any position higher than + in the view or any position outside the view. The "+"/"-" here and in the (NEW ...) arguments are the caveat mentioned above necessary to fully solve (1). We don't use "0" as a position here. Finally problem (5). You'll observe none of the responses above include UIDs. But many clients want UIDs for everything. So we add the "UID" modifier to "VIEW SET" which causes "/" to be added to every or above, unless the UID can be inferred by incrementing the previous listed UID. This may force some of the ranges to be broken out. Now that we've addressed all the chatiness problems (perhaps with excessive zeal :-), the next step is to see what we can get rid of to simplify things. We could easily drop the "/" thing or make it a separate extension, at the cost of forcing disconnected clients to keep UID:SEQNO maps. Probably worth dropping. I used ranges a lot above because I observed that a general purpose compression layer probably won't catch ordering patterns in ascii-encoded numbers. We could drop that or make it a layered extension for improved performance. We could have multiple "* MOVE" responses instead of collapsing this. There are probably other possible simplifications. Thoughts? - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id LAA27451 for ietf-imapext-bks; Fri, 18 Aug 2000 11:52:50 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (sean@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA27442 for ; Fri, 18 Aug 2000 11:52:47 -0700 (PDT) Date: Fri, 18 Aug 2000 11:12:58 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Ken Murchison cc: IMAP Extensions WG In-Reply-To: <399D7AC9.AB39D48@oceana.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 18 Aug 2000 14:04:57 -0400, Ken Murchison wrote: > In an effort to settle at least one issue here (at least in my own > mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is > technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume > for sake of argument that the current SORT/THREAD will be updated to > meet the needs of VIEW. I feel that that VIEW with imbedded SORT/THREAD is technically inferior to VIEW which uses top-level SORT/THREAD. VIEW with imbedded SORT/THREAD is excessively complex and non-robust. It creates unnecessary interlocking dependencies. It will be quite difficult to extend. In those cases in the client needs the sort map or thread tree, the VIEW mechanism is baroque and wasteful of bandwidth and RTTs. Conversely, if VIEW is restricted to a framework for managing server-based views, then there are no dependencies or extension difficulties. As new mechanisms (such as SORT and THREAD) come, or older mechanisms are retired, VIEW will naturally update by itself. VIEW will be used in those cases where it has the greatest benefit. There are currently no clients which present a sorted or threaded view without having the complete sort map or thread tree on hand. It is speculated that such clients are possible, but there is no proof of this, much less that VIEW eliminates any need for the sort map or thread tree. The notion that IMAP threading can not scale without a subsetting mechanism would be laughable to the NNTP people. NNTP clients have been threading for years; yet you would have to download a hundred or so IMAP thread trees to match a single NNTP overview download. It has been implied that server implementors would not implement VIEW if top level SORT and THREAD are available. If that is true, then VIEW is a solution in search of a problem. I don't believe that to be so; but if it is, then we should not try to prevent the inevitable. Received: by ns.secondary.com (8.9.3/8.9.3) id LAA25725 for ietf-imapext-bks; Fri, 18 Aug 2000 11:09:40 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA25721 for ; Fri, 18 Aug 2000 11:09:38 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7II9AA26577 for ; Fri, 18 Aug 2000 14:09:10 -0400 Message-ID: <399D7AC9.AB39D48@oceana.com> Date: Fri, 18 Aug 2000 14:04:57 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Mark Crispin wrote: > > By presenting VIEW as a replacement for SORT/THREAD, an assumption is > being made that "one monolithic tool fits all". This is not a good > architecture. > > A better choice is to have smaller tools which do a single job well. > VIEW is a good framework for server-based manipulation of views. > SORT/THREAD are good for sorting and threading. I agree. I think that this "separate but interoperable" or "layered" approach is both cleaner and more flexible in the long run. In an effort to settle at least one issue here (at least in my own mind), is anyone proclaiming that VIEW with imbedded SORT/THREAD is technically *superior* to VIEW which uses toplevel SORT/THREAD? Assume for sake of argument that the current SORT/THREAD will be updated to meet the needs of VIEW. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id VAA25616 for ietf-imapext-bks; Thu, 17 Aug 2000 21:45:23 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id VAA25597 for ; Thu, 17 Aug 2000 21:45:21 -0700 (PDT) Received: from ppp4.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7I4i4A03437; Fri, 18 Aug 2000 00:44:04 -0400 Message-ID: <399CBF98.3E780D10@oceana.com> Date: Fri, 18 Aug 2000 00:46:16 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Cyrus Daboo CC: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <1198468.3175524200@socrates.cyrusoft.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Cyrus Daboo wrote: > > --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman > wrote: > > > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin > > wrote: > >> On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: > >>> I see your point, but isn't this a matter of poor implementation rather > >>> than a problem with the functionality spec'd by the draft? The > >>> processing problem could be overcome by caching some of the thread > >>> results > >> > >> I agree with Ken. VIEW does not address the recalculation problem. > > > > Actually, the VIEW untagged response specifically solves the recalcuation > > problem without requiring the client to cache anything beyond what's > > currently displayed. > > I think Ken was talking about caching on the server as opposed to the > client. If I'm not mistaken, the current SORT/THREAD implementations just > do the full sort/thread calculation each time the command is issued, > whereas if the server cached the sort/thread results it could return > updates a lot quicker. Exactly. I failed to make this clear the first time. Thanks! -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04291 for ietf-imapext-bks; Thu, 17 Aug 2000 16:26:03 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04287 for ; Thu, 17 Aug 2000 16:26:03 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA28317; Thu, 17 Aug 2000 16:25:59 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA13306; Thu, 17 Aug 2000 16:25:59 -0700 (PDT) Date: Thu, 17 Aug 2000 16:24:37 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <874606.3175518277@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:51 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 14:41:49 -0700, Chris Newman wrote: >> Actually, the VIEW untagged response specifically solves the recalcuation >> problem without requiring the client to cache anything beyond what's >> currently displayed. > > The "recalculation problem" refers to the server CPU time expended in > recalculating a sort or thread when new messages arrive. Sorry, I was thinking of the "recalculation problem" relevent to the protocol rather than implementation details. Specifically, when a client has a sorted view and gets notified of new messages with "* n EXISTS", the client must: (1) Re-issue the SORT command to the server. (2) Wait for a round-trip (3) correlate the new SORT data with the existing SORT map and determine if the display needs to be updated. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04125 for ietf-imapext-bks; Thu, 17 Aug 2000 16:14:09 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04121 for ; Thu, 17 Aug 2000 16:14:08 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id QAA24976; Thu, 17 Aug 2000 16:14:06 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id QAA12210; Thu, 17 Aug 2000 16:14:05 -0700 (PDT) Date: Thu, 17 Aug 2000 16:12:45 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: IETF and installed base (was Re: SORT, THREAD, and VIEW) Message-ID: <831806.3175517565@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: This is an interesting discussion and has just clarified my position. If there is an installed base of software with known protocol defects here are the actions the IETF can choose: 1) Standardize a corrected solution which is backwards compatibile. 2) Standardize a partially corrected solution which is backwards compatible. 3) Standardize a corrected solution which is not itself backwards compatible but permits an implementation to be backwards compatible if it chooses. 4) Standardize a partially corrected solution which is not itself backwards compatible but permits an implementation to be backwards compatible if it chooses. 5) Standardize a complete solution which is not backwards compatible. Sometimes (1) is not possible. Sometimes neither (1) nor (3) is possible. When the installed base is standards-track, then the IETF's reputation is on the line and that makes (5) extremely undesirable and adds weight to lower numbered options. Because of the K.I.S.S. principle I believe (3) should be the IETF's default action when possible. If the move from (3) to (1) adds no cruft to the protocol, then the latter is preferred (ditto for 4/2). I observe that the WG meeting rough concensus on VIEW=SORT/VIEW=THREAD is option (3). Therefore the installed base issue has been adequately addressed. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04112 for ietf-imapext-bks; Thu, 17 Aug 2000 16:13:07 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (den@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04106 for ; Thu, 17 Aug 2000 16:13:05 -0700 (PDT) Date: Thu, 17 Aug 2000 16:12:55 -0700 (Pacific Daylight Time) From: Mark Crispin To: Cyrus Daboo cc: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW In-Reply-To: <1330217.3175526391@socrates.cyrusoft.com> Message-ID: Organization: Networks & Distributed Computing MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000, Cyrus Daboo wrote: > A VIEW client NEVER needs to get the 'tree'. It just uses view > position numbers to access messages in sorted order. In theory, yes. But there is no practical experience demonstrating that the theory works. Our practical experience suggests that the client needs the tree. > Once SORT and VIEW=SORT have been > setup by their respective clients, the subsequent client behaviour of > fetching the messages needed for display to the user is _exactly_ the same. This is not true if you maintain a cache on the client. You can't cache by view specifier, because you'd be obliged to purge the cache if you change the view. So you cache by message numbers or UID, and need to map between view specifier and message number/UID. VIEW does a worse job of delivering the map information. How much worse depends upon the values, but it's about 6 to 8 times worse. It is extremely unlikely that a client (particularly a disconnected client) will work with only view specifiers, and ignore both message numbers and UIDs. By presenting VIEW as a replacement for SORT/THREAD, an assumption is being made that "one monolithic tool fits all". This is not a good architecture. A better choice is to have smaller tools which do a single job well. VIEW is a good framework for server-based manipulation of views. SORT/THREAD are good for sorting and threading. It is a mistake to expand VIEW to take over sorting and threading (as opposed to allowing VIEW to use SORT and THREAD as tools). > To be honest with you I'm not sure which of SORT or VIEW=SORT is likely to > be more efficient. Then it would be a mistake to advance VIEW to the detriment of SORT/THREAD, and especially to make SORT/THREAD depend upon VIEW. > That's why I suggested having > SORT/THREAD experimental > I guess this argues for also making > VIEW=SORT experimental Unfortunately, Experimental is effectively a kiss of death. SORT/THREAD are proven solutions, and do not prevent other solutions. Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03597 for ietf-imapext-bks; Thu, 17 Aug 2000 15:38:20 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03593 for ; Thu, 17 Aug 2000 15:38:17 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA02869; Thu, 17 Aug 2000 18:37:16 -0400 (EDT) Date: Thu, 17 Aug 2000 18:39:51 -0400 From: Cyrus Daboo To: Mark Crispin cc: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1330217.3175526391@socrates.cyrusoft.com> In-Reply-To: X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 2:42 PM -0700 Mark Crispin wrote: > No, it's not. > > In many situations, SORT/THREAD is the superior approach. > > VIEW works better *only* if you obtain just a small amount of data at a > time. > > If the client needs the tree for more than about 20% of the mailbox, > SORT/THREAD wins in bandwidth. That's not the case. A VIEW client NEVER needs to get the 'tree'. It just uses view position numbers to access messages in sorted order. > The win point for SORT/THREAD is probably lower, since if you scroll > outside the range that you fetched with VIEW you have to get more data > whereas with SORT/THREAD you don't since you have everything. Also, you > have to consider the effect of the RTTs, since you need multiple commands > to do the same thing. VIEW does not 'fetch a range'. It merely sets up on the server the same mapping that SORT sets up on the client. Once SORT and VIEW=SORT have been setup by their respective clients, the subsequent client behaviour of fetching the messages needed for display to the user is _exactly_ the same. What's more, VIEW has zero overhead to set up - you just tack the extra VIEW data onto SELECT. With SORT, you have to issue a SELECT, then do a SORT. Only once you've got the sort map can you then start doing the same kind of 'sorted' FETCH'ing that the VIEW client can do immediately after an extended SELECT. Admittedly, VIEW does add extra responses: the required VIEW fetch data and unsolicited VIEW responses for changes to the VIEW. The later is a potential performance issue when a mailbox changes in a big way. e.g. if 1000 new messages appear in the mailbox all at once, clients may end up getting 1000 untagged VIEW responses without even asking for them. Arguably SORT would be more efficient in that case. However, its no worse than the current situation with EXPUNGE responses, where a similar behaviour could occur. To be honest with you I'm not sure which of SORT or VIEW=SORT is likely to be more efficient. I suspect there are cases where SORT would win, and other cases where VIEW=SORT would win. That's why I suggested having SORT/THREAD experimental because it does leave the door open for moving them forward on the standards track if enough people can agree that it really is as useful as VIEW=SORT. I guess this argues for also making VIEW=SORT experimental until such a time as we have enough experience to know which is better. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03060 for ietf-imapext-bks; Thu, 17 Aug 2000 15:01:44 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03056 for ; Thu, 17 Aug 2000 15:01:43 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id SAA02813; Thu, 17 Aug 2000 18:00:42 -0400 (EDT) Date: Thu, 17 Aug 2000 18:03:20 -0400 From: Cyrus Daboo To: Chris Newman , IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1198468.3175524200@socrates.cyrusoft.com> In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman wrote: > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin > wrote: >> On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: >>> I see your point, but isn't this a matter of poor implementation rather >>> than a problem with the functionality spec'd by the draft? The >>> processing problem could be overcome by caching some of the thread >>> results >> >> I agree with Ken. VIEW does not address the recalculation problem. > > Actually, the VIEW untagged response specifically solves the recalcuation > problem without requiring the client to cache anything beyond what's > currently displayed. I think Ken was talking about caching on the server as opposed to the client. If I'm not mistaken, the current SORT/THREAD implementations just do the full sort/thread calculation each time the command is issued, whereas if the server cached the sort/thread results it could return updates a lot quicker. -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02970 for ietf-imapext-bks; Thu, 17 Aug 2000 14:58:07 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02966 for ; Thu, 17 Aug 2000 14:58:06 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA26876; Thu, 17 Aug 2000 14:57:55 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (remp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA10548; Thu, 17 Aug 2000 14:57:55 -0700 Date: Thu, 17 Aug 2000 14:42:34 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Cyrus Daboo cc: Chris Newman , IMAP Extensions WG In-Reply-To: <1107297.3175522685@socrates.cyrusoft.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 17:38:05 -0400, Cyrus Daboo wrote: > How about publishing SORT/THREAD as experimental and including a note in > those specs that VIEW=SORT/THREAD is the 'recommended' approach for new > implementations? Would that be enough to satisfy these concerns? No, it's not. In many situations, SORT/THREAD is the superior approach. VIEW works better *only* if you obtain just a small amount of data at a time. If the client needs the tree for more than about 20% of the mailbox, SORT/THREAD wins in bandwidth. The win point for SORT/THREAD is probably lower, since if you scroll outside the range that you fetched with VIEW you have to get more data whereas with SORT/THREAD you don't since you have everything. Also, you have to consider the effect of the RTTs, since you need multiple commands to do the same thing. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02935 for ietf-imapext-bks; Thu, 17 Aug 2000 14:57:06 -0700 (PDT) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.5]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02927 for ; Thu, 17 Aug 2000 14:57:04 -0700 (PDT) Received: from mailhost1.u.washington.edu (mailhost1.u.washington.edu [140.142.32.2]) by mxout1.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA26767; Thu, 17 Aug 2000 14:57:01 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (scott@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost1.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA05634; Thu, 17 Aug 2000 14:57:01 -0700 Date: Thu, 17 Aug 2000 14:51:14 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 14:41:49 -0700, Chris Newman wrote: > Actually, the VIEW untagged response specifically solves the recalcuation > problem without requiring the client to cache anything beyond what's > currently displayed. The "recalculation problem" refers to the server CPU time expended in recalculating a sort or thread when new messages arrive. The VIEW untagged response has nothing to do with server calculation overhead. It simply provides a way to add a message to the view. VIEW can make the recalculation problem worse, since it forces the server to recalculate the view every time new messages arrive, even if the client did not request it. The recalculation problem is solved by server caching, not by protocol. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02656 for ietf-imapext-bks; Thu, 17 Aug 2000 14:43:15 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02652 for ; Thu, 17 Aug 2000 14:43:14 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id OAA24612 for ; Thu, 17 Aug 2000 14:43:11 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id OAA02491 for ; Thu, 17 Aug 2000 14:43:10 -0700 (PDT) Date: Thu, 17 Aug 2000 14:41:49 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <503617.3175512109@nifty-jr.west.sun.com> In-Reply-To: <399C3F3A.617EA8@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin wrote: > On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: >> I see your point, but isn't this a matter of poor implementation rather >> than a problem with the functionality spec'd by the draft? The >> processing problem could be overcome by caching some of the thread >> results > > I agree with Ken. VIEW does not address the recalculation problem. Actually, the VIEW untagged response specifically solves the recalcuation problem without requiring the client to cache anything beyond what's currently displayed. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02644 for ietf-imapext-bks; Thu, 17 Aug 2000 14:42:16 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02640 for ; Thu, 17 Aug 2000 14:42:15 -0700 (PDT) Received: from mailhost1.u.washington.edu (mailhost1.u.washington.edu [140.142.32.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id OAA09463; Thu, 17 Aug 2000 14:42:12 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (resp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost1.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id OAA03474; Thu, 17 Aug 2000 14:42:12 -0700 Date: Thu, 17 Aug 2000 14:19:06 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <172336.3175506601@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 13:10:01 -0700, Chris Newman wrote: > Take a mailbox with 100,000 messages. Now suppose you want to sort the > view on your Palm device. How many Palm device MUAs handle 100,000 message mailboxes? How many IMAP clients, on any platform, handle 100,000 message mailboxes? I know that Pine can, but all the other clients that I've tried fail at much smaller mailbox sizes. 100,000 message mailboxes are not a reflection of the world today, or the likely world in the future. Furthermore, it presupposes that a Palm software implementor is going to care enough about this case to avoid all per-message tables, assuming that you can even set up a virtual scrollbar of 100,000 entries without consuming a related amount of memory. > which will could stress a slow wireless connection. Gee, a lot of people here use Pine with wireless, and find that it works quite well. The example is not valid except as a gedanken exercise. > Thus these commands are poorly designed and not scalable. This is opinion, not fact, based upon contrived examples. In the real world, SORT and THREAD are no more chatty than any other IMAP command (and in some cases quite a bit less). Have you worked out the protocol generated by VIEW THREAD? VIEW consumes several times as much bandwidth as top-level THREAD to obtain the tree. This is a terrible problem with the assumption that VIEW should be the only way to get threading information. VIEW works only if you intend to get only a small amount of data at the time, and can afford the multiple RTTs necessary to calculate the view sequences that you need and translate them to message sequences or UIDs for subsequent lookup in your cache. Received: by ns.secondary.com (8.9.3/8.9.3) id OAA02549 for ietf-imapext-bks; Thu, 17 Aug 2000 14:36:35 -0700 (PDT) Received: from darius.cyrusoft.com (darius.cyrusoft.com [206.31.218.194]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA02545 for ; Thu, 17 Aug 2000 14:36:34 -0700 (PDT) Received: from socrates.cyrusoft.com (socrates.cyrusoft.com [206.31.218.216]) by darius.cyrusoft.com (8.9.3/8.9.3) with ESMTP id RAA02712; Thu, 17 Aug 2000 17:35:27 -0400 (EDT) Date: Thu, 17 Aug 2000 17:38:05 -0400 From: Cyrus Daboo To: Chris Newman , Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1107297.3175522685@socrates.cyrusoft.com> In-Reply-To: <317507.3175509015@nifty-jr.west.sun.com> X-Mailer: Mulberry/2.1.0d1 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 1:50 PM -0700 Chris Newman wrote: >> The developers of both servers which support only the top-level SORT and >> THREAD commands have stated their intention to support the VIEW command >> if adopted in its current form. > > I'm far more concerned about the server vendors not reading this list > than I am about yours. If a server vendor thinks "I can provide > standards compliant SORT/THREAD without this complex VIEW stuff" they're > likely to do so before they realize it's inadequate for most clients. If > SORT/THREAD require implementation of VIEW, then they're likely to get it > right the first time. How about publishing SORT/THREAD as experimental and including a note in those specs that VIEW=SORT/THREAD is the 'recommended' approach for new implementations? Would that be enough to satisfy these concerns? -- Cyrus Daboo Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01654 for ietf-imapext-bks; Thu, 17 Aug 2000 13:51:42 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01650 for ; Thu, 17 Aug 2000 13:51:41 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA04498; Thu, 17 Aug 2000 13:51:38 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA27119; Thu, 17 Aug 2000 13:51:37 -0700 (PDT) Date: Thu, 17 Aug 2000 13:50:15 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <317507.3175509015@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Wednesday, August 16, 2000 18:18 -0700 Mark Crispin wrote: > The developers of both servers which support only the top-level SORT and > THREAD commands have stated their intention to support the VIEW command if > adopted in its current form. I'm far more concerned about the server vendors not reading this list than I am about yours. If a server vendor thinks "I can provide standards compliant SORT/THREAD without this complex VIEW stuff" they're likely to do so before they realize it's inadequate for most clients. If SORT/THREAD require implementation of VIEW, then they're likely to get it right the first time. > Where is the interoperability problem? Please read: > On Wed, 16 Aug 2000 18:08:19 -0700, Chris Newman wrote: >> If a standards compliant server supports only the bare SORT command and >> only the bare THREAD command, and a standards compliant client supports >> only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem >> with the standards. Thus the standards must prohibit that situation or they are broken. > Pine's zoom/unzoom facility. We would like to implement this using VIEW. > Zooming in Pine is separate from sorting/threading. I never used or knew about that facility when I was running Pine. Could you explain it please? It may be sufficient evidence to cause me to oppose the WG meeting rough concensus in favor of my compromise proposal. > We should seek concensus via a unity of functionality, not by benefit to > one side at the expense of another. Agreed. That's why I made my compromise proposal. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id NAA01539 for ietf-imapext-bks; Thu, 17 Aug 2000 13:45:19 -0700 (PDT) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA01535 for ; Thu, 17 Aug 2000 13:45:18 -0700 (PDT) Received: from mailhost2.u.washington.edu (mailhost2.u.washington.edu [140.142.33.2]) by mxout2.cac.washington.edu (8.9.3+UW00.02/8.9.3+UW99.09) with ESMTP id NAA00979; Thu, 17 Aug 2000 13:45:14 -0700 Received: from Tomobiki-Cho.CAC.Washington.EDU (cecil@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost2.u.washington.edu (8.9.3+UW00.02/8.9.3+UW00.01) with ESMTP id NAA00490; Thu, 17 Aug 2000 13:45:14 -0700 Date: Thu, 17 Aug 2000 13:29:14 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Ken Murchison cc: IMAP Extensions WG In-Reply-To: <399C3F3A.617EA8@oceana.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Thu, 17 Aug 2000 15:38:34 -0400, Ken Murchison wrote: > Lawrence Greenfield wrote: > > I believe the primary scalability problem is that, while a client has > > the IMAP mailing list selected, it will have to rerun > > thread references us-ascii all > > every time a new message is delivered to the mailbox. This causes the > > server 1 second of computation per message delivered per client, which > > quickly can be very unfortunate for the server. > I see your point, but isn't this a matter of poor implementation rather > than a problem with the functionality spec'd by the draft? The > processing problem could be overcome by caching some of the thread > results I agree with Ken. VIEW does not address the recalculation problem. Caching is the solution, but VIEW doesn't make caching happen. Nor is VIEW necessary to make caching happen. Received: by ns.secondary.com (8.9.3/8.9.3) id NAA00869 for ietf-imapext-bks; Thu, 17 Aug 2000 13:11:29 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id NAA00865 for ; Thu, 17 Aug 2000 13:11:28 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA18275 for ; Thu, 17 Aug 2000 13:11:25 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id NAA23049 for ; Thu, 17 Aug 2000 13:11:24 -0700 (PDT) Date: Thu, 17 Aug 2000 13:10:01 -0700 From: Chris Newman To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <172336.3175506601@nifty-jr.west.sun.com> In-Reply-To: <399C28FE.1E36828A@oceana.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --On Thursday, August 17, 2000 14:03 -0400 Ken Murchison wrote: > I am a little curious about the perceived scalability problems with > SORT/THREAD. Take a mailbox with 100,000 messages. Now suppose you want to sort the view on your Palm device. Each sort command will return about 650K of data, which will could stress a slow wireless connection. But even worse, the Palm device either has to store a mapping table of at least 400K (about 1/4 the RAM of a typical consumer-grade Palm), or re-issue the SORT command every time the user scrolls outside the cached window of the mapping table. This is in addition to the problem Larry mentioned that SORT must be re-issued after each "* EXISTS" or the client must download the SORT key(s) for all messages and duplicate the server functionality locally (likely impractical on a Palm device). For those familiar with O() notation as taught in preliminary CS courses, the issue is that the bare SORT/THREAD commands have network and client memory consumption on the order of O(n) where n is the size of the mailbox. Thus these commands are poorly designed and not scalable. The VIEW command has network and client memory consumption on the order of O(1) because it supports virtual windowing. - Chris Received: by ns.secondary.com (8.9.3/8.9.3) id MAA00288 for ietf-imapext-bks; Thu, 17 Aug 2000 12:43:15 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA00284 for ; Thu, 17 Aug 2000 12:43:14 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HJgfA20181 for ; Thu, 17 Aug 2000 15:42:41 -0400 Message-ID: <399C3F3A.617EA8@oceana.com> Date: Thu, 17 Aug 2000 15:38:34 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> <200008171850.e7HIoBg11143@smtp4.andrew.cmu.edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Lawrence Greenfield wrote: > > Date: Thu, 17 Aug 2000 14:03:42 -0400 > From: Ken Murchison > Organization: Oceana Matrix Ltd. > > [...] > I am a little curious about the perceived scalability problems with > SORT/THREAD. Just for the hell of it, I performed a highly unscientific > test on my Cyrus server which has SORT/THREAD support. I ran a 'thread > references us-ascii all' on an archive of the IMAP mailing list > (currently 7800+ messages) and I received the results in about 1 > second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to > their comparative complexity. If we're talking about hundreds/thousands > of users performing similar functions over low bandwith connections, > then this is another issue, but I'm not convinced that the servers can > handle this either. > > I believe the primary scalability problem is that, while a client has > the IMAP mailing list selected, it will have to rerun > > thread references us-ascii all > > every time a new message is delivered to the mailbox. This causes the > server 1 second of computation per message delivered per client, which > quickly can be very unfortunate for the server. I see your point, but isn't this a matter of poor implementation rather than a problem with the functionality spec'd by the draft? The processing problem could be overcome by caching some of the thread results (as you've mentioned before) so that the new message(s) can be quickly inserted. How does this differ if I'm VIEWing the entire mailbox? -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id LAA29049 for ietf-imapext-bks; Thu, 17 Aug 2000 11:54:22 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA29045 for ; Thu, 17 Aug 2000 11:54:20 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HIrkA18642 for ; Thu, 17 Aug 2000 14:53:46 -0400 Message-ID: <399C33C3.8D6C8406@oceana.com> Date: Thu, 17 Aug 2000 14:49:39 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Ken Murchison wrote: > > I am a little curious about the perceived scalability problems with > SORT/THREAD. Just for the hell of it, I performed a highly unscientific > test on my Cyrus server which has SORT/THREAD support. I ran a 'thread > references us-ascii all' on an archive of the IMAP mailing list > (currently 7800+ messages) and I received the results in about 1 > second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to > their comparative complexity. ^^^^^^^^^^ Uh... this should read simplicity. Sorry. Ken -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id LAA28837 for ietf-imapext-bks; Thu, 17 Aug 2000 11:50:17 -0700 (PDT) Received: from smtp4.andrew.cmu.edu (SMTP4.ANDREW.CMU.EDU [128.2.10.84]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA28833 for ; Thu, 17 Aug 2000 11:50:16 -0700 (PDT) Received: from penguin.andrew.cmu.edu (PENGUIN.ANDREW.CMU.EDU [128.2.122.2]) by smtp4.andrew.cmu.edu (8.11.0.Beta3/8.11.0.Beta3) with ESMTP id e7HIoBg11143; Thu, 17 Aug 2000 14:50:12 -0400 Date: Thu, 17 Aug 2000 14:50:11 -0400 Message-Id: <200008171850.e7HIoBg11143@smtp4.andrew.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: IMAP Extensions WG In-reply-to: <399C28FE.1E36828A@oceana.com> Subject: Re: SORT, THREAD, and VIEW References: <399C28FE.1E36828A@oceana.com> Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Date: Thu, 17 Aug 2000 14:03:42 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. [...] I am a little curious about the perceived scalability problems with SORT/THREAD. Just for the hell of it, I performed a highly unscientific test on my Cyrus server which has SORT/THREAD support. I ran a 'thread references us-ascii all' on an archive of the IMAP mailing list (currently 7800+ messages) and I received the results in about 1 second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to their comparative complexity. If we're talking about hundreds/thousands of users performing similar functions over low bandwith connections, then this is another issue, but I'm not convinced that the servers can handle this either. I believe the primary scalability problem is that, while a client has the IMAP mailing list selected, it will have to rerun thread references us-ascii all every time a new message is delivered to the mailbox. This causes the server 1 second of computation per message delivered per client, which quickly can be very unfortunate for the server. Larry Received: by ns.secondary.com (8.9.3/8.9.3) id LAA28142 for ietf-imapext-bks; Thu, 17 Aug 2000 11:08:24 -0700 (PDT) Received: from eagle.oceana.com (eagle.oceana.com [208.17.123.12]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA28136 for ; Thu, 17 Aug 2000 11:08:23 -0700 (PDT) Received: from ken.oceana.com by eagle.oceana.com (Switch-2.0.5/Switch-2.0.0) with ESMTP id e7HI7nA17184 for ; Thu, 17 Aug 2000 14:07:49 -0400 Message-ID: <399C28FE.1E36828A@oceana.com> Date: Thu, 17 Aug 2000 14:03:42 -0400 From: Ken Murchison Organization: Oceana Matrix Ltd. X-Mailer: Mozilla 4.73 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I happen to agree with Mark on this issue. I feel that VIEW should *only* be (and is currently documented as such) a framework for limiting the scope of IMAP commands that operate in the selected state (give or take a few). Commands that operate in the selected state (FETCH, STORE, SEARCH, SORT, THREAD, etc) should be able to stand on their own and not be hidden within the VIEW functionality. This being said, I also think that any server that implements both VIEW and any of the above mentioned commands MUST allow these commands to be used within a VIEW. Chris *might* have a point that some lazy server vendors won't implement VIEW in favor of toplevel SORT/THREAD only, but if it turns out that VIEW becomes an important feature for client vendors (and users alike), then the sub-par servers will be naturally deselected in the evolution of the IMAP community. I am a little curious about the perceived scalability problems with SORT/THREAD. Just for the hell of it, I performed a highly unscientific test on my Cyrus server which has SORT/THREAD support. I ran a 'thread references us-ascii all' on an archive of the IMAP mailing list (currently 7800+ messages) and I received the results in about 1 second. A 'sort' or 'thread orderedsubject' is slightly quicker, due to their comparative complexity. If we're talking about hundreds/thousands of users performing similar functions over low bandwith connections, then this is another issue, but I'm not convinced that the servers can handle this either. Ken (Cyrus contributor) -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp Received: by ns.secondary.com (8.9.3/8.9.3) id KAA26356 for ietf-imapext-bks; Thu, 17 Aug 2000 10:06:48 -0700 (PDT) Received: from mail.yourdomain.com (m319-mp1-cvx1a.man.ntl.com [62.252.197.63]) by ns.secondary.com (8.9.3/8.9.3) with SMTP id JAA26173; Thu, 17 Aug 2000 09:58:55 -0700 (PDT) From: announce@leisurewebcams.com Message-Id: <200008171658.JAA26173@ns.secondary.com> Date: Thu, 17 Aug 2000 14:23:35 Subject: LeisureWebcams.com - See the World Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: LeisureWebcams.com is a recently launched website specialising in providing free LIVE access to over 1,500 webcams and 2,000 Tourist Offices world wide. Check it out:- http://www.leisurewebcams.com/ This offers you the chance to check out live and frequently updated images of your chosen location through the webcams and get detailed local knowledge through the Tourist Offices. Along with booking holidays direct through our travel partner, there is the opportunity to sell your unwanted clothes and equipment through our free Swap Shop. There is a lot to see, so if you have enjoyed your trip through our site, do tell your friends and let us know through 'Your Views'. If you have any suggestions for the site, or queries, please feel free to contact me at cy@LeisureWebcams.com. I look forward to hearing from you. Kind regards, Charlie Yates MARKETING DIRECTOR LeisureWebcams.com Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id TAA27754 for ietf-imapext-bks; Wed, 16 Aug 2000 19:17:31 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (remp@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id TAA27750 for ; Wed, 16 Aug 2000 19:17:29 -0700 (PDT) Date: Wed, 16 Aug 2000 18:18:24 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: IMAP Extensions WG In-Reply-To: <2252934.3175438099@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 16 Aug 2000 18:08:19 -0700, Chris Newman wrote: > If a standards compliant server supports only the bare SORT command and > only the bare THREAD command, and a standards compliant client supports > only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem > with the standards. The developers of both servers which support only the top-level SORT and THREAD commands have stated their intention to support the VIEW command if adopted in its current form. In the current form of the VIEW specification, the situation in which a server supports only VIEW SORT and VIEW THREAD can not exist; a server which supports VIEW with sorting and threading supports the top-level commands by definition. Where is the interoperability problem? > Since it is an unreasonable burden to require clients to support bare SORT > and bare THREAD given their known scalability problems There are no "known scalability problems" with the top-level SORT and THREAD commands. There is a claim to that effect, but that claim is disputed. As a disputed claim, it should not be referred to in terms that imply that it constitutes "known" fact. That claim is part of your argument, but can not be used to as fact to dismiss consideration of contrary arguments. > In particular, the standards track sort extension needs to state: > (1) If the client sees the "VIEW=SORT"/"SORT2" (whichever we pick) > capability then it MAY presume that the "VIEW"/"VIEW=SEARCH" capability is > also present. > (2) If the server advertises "VIEW=SORT"/"SORT2" (whichever we pick) then > it MUST also advertise and support "VIEW"/"VIEW=SEARCH". > Ditto for the standards track THREAD extension. Why introduce all this complexity? We can do something much simpler: If the client sees the VIEW capability, then 1) VIEW SEARCH is present. 2) if the client also sees the SORT capability, then VIEW SORT is present 3) if the client also sees the THREAD capability, then VIEW THREAD is present Rule (1) can be stipulated by the VIEW specification. Rules (2) and (3) can be stipulated by either the VIEW specification or by the SORT and THREAD specifications. Not only "can" these be stipulated, they "should" be stipulated. I have no objection to a flat prohibition of an implementation which has VIEW SEARCH and top-level SORT/THREAD, but not VIEW SORT or VIEW THREAD; I would be unhappy if there wasn't such a prohibition. > The WG meeting rough consensus (which was not my proposal) was that we call > the capabilities "VIEW=SORT" and "VIEW=THREAD=xxx", and that these > capabilities do not imply the presence of the bare SORT or THREAD commands. > The latter exclusion was justified primarily on the basis of the KISS > principle -- we don't need two ways to do SORTing or THREADing, the VIEW > method preferred by client vendors is sufficient. At least one client developer, and two server developers, feel that they do not want to have VIEW overloaded with sorting and threading capability. Rather, they want VIEW to be a framework for managing views that uses other (existing) mechanisms for sorting and threading. These are the people who have operational experience with IMAP server-based sorting and threading today. There are currently no implementations of VIEW in any form. > You have made assertions that the > bare SORT/THREAD commands are useful in addition to the VIEW version, but > provided no evidence or real world scenarios to back up that assertion. Pine's zoom/unzoom facility. We would like to implement this using VIEW. Zooming in Pine is separate from sorting/threading. > The installed base issue is largely irrelevant in this case, because there > is no installed base of standards complaint servers supporting "SORT" and > "THREAD=xxx" (indeed, any server which advertises those is not even > compliant with RFC 2060). It does not benefit anyone to call UW imapd and Cyrus imapd "not standards compliant." Nor does it benefit anyone to call Pine "not standards compliant." It makes all sides look bad. It gives the proponents of non-IMAP solutions ammunition to say "IMAP is toast. They're are in a civil war, with the guys who invented IMAP on one side, and an IETF working group on the other side. It's all politics, and you're better off not using IMAP." Let's not go down this path. We should seek concensus via a unity of functionality, not by benefit to one side at the expense of another. > The "do no harm" principle applies so we have to > name the standard versions of "SORT" and "THREAD" something else, but the > IETF is never obligated to incorporate deployed non-standard protocol into > standards. Nevertheless, the IETF generally does adopt widely used mechanisms that fufill the purpose for which they are intended. What made IETF win over ISO was the practice of preferring working code. After 10 years, ongoing email interoperability problems remain because IETF refused to adopt the common practice of "just send 8-bits" in SMTP/RFC822. Unlike the IMAP sort/thread case, there were excellent technical reasons for this decision: "just send 8-bits" broke standards-compliant software. Nevertheless, the experience should teach all of us to eschew defiance of a large installed base without compelling reasons. No such reasons exist with IMAP SORT/THREAD. There is a disputed claim of "scalability problems"; but even if true those problems do not affect unwilling software. Far more users today rely upon SORT/THREAD than do upon ACL. It is claimed that the ACL installed base will not permit the repair of proven problems in ACL, to the point of making a "no we won't fix it" statement. What, then, is the problem with SORT/THREAD? Received: by ns.secondary.com (8.9.3/8.9.3) id SAA19493 for ietf-imapext-bks; Wed, 16 Aug 2000 18:09:39 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id SAA19485 for ; Wed, 16 Aug 2000 18:09:38 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id SAA02241; Wed, 16 Aug 2000 18:09:31 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id SAA29469; Wed, 16 Aug 2000 18:09:30 -0700 (PDT) Date: Wed, 16 Aug 2000 18:08:19 -0700 From: Chris Newman To: Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <2252934.3175438099@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: If a standards compliant server supports only the bare SORT command and only the bare THREAD command, and a standards compliant client supports only VIEW+SORT and VIEW+THREAD, the result is an interoperability problem with the standards. Therefore, the standards must prevent that situation. Since it is an unreasonable burden to require clients to support bare SORT and bare THREAD given their known scalability problems, the correct way to fix this is to declare a server non-compliant with the extension standards if it implements SORT without VIEW+SORT or THREAD without VIEW+THREAD. In particular, the standards track sort extension needs to state: (1) If the client sees the "VIEW=SORT"/"SORT2" (whichever we pick) capability then it MAY presume that the "VIEW"/"VIEW=SEARCH" capability is also present. (2) If the server advertises "VIEW=SORT"/"SORT2" (whichever we pick) then it MUST also advertise and support "VIEW"/"VIEW=SEARCH". Ditto for the standards track THREAD extension. The WG meeting rough consensus (which was not my proposal) was that we call the capabilities "VIEW=SORT" and "VIEW=THREAD=xxx", and that these capabilities do not imply the presence of the bare SORT or THREAD commands. The latter exclusion was justified primarily on the basis of the KISS principle -- we don't need two ways to do SORTing or THREADing, the VIEW method preferred by client vendors is sufficient. My compromise proposal was that if a valid justification can be provided to keep the bare "SORT" and "THREAD" commands, then I could live with keeping them when the VIEW form is also present. You have made assertions that the bare SORT/THREAD commands are useful in addition to the VIEW version, but provided no evidence or real world scenarios to back up that assertion. Without such evidence/scenarios, I suspect WG rough consensus will match the WG meeting rough consensus. The installed base issue is largely irrelevant in this case, because there is no installed base of standards complaint servers supporting "SORT" and "THREAD=xxx" (indeed, any server which advertises those is not even compliant with RFC 2060). The "do no harm" principle applies so we have to name the standard versions of "SORT" and "THREAD" something else, but the IETF is never obligated to incorporate deployed non-standard protocol into standards. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id OAA15531 for ietf-imapext-bks; Wed, 16 Aug 2000 14:34:10 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (wambold@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id OAA15527 for ; Wed, 16 Aug 2000 14:34:09 -0700 (PDT) Date: Wed, 16 Aug 2000 12:54:47 -0700 (PDT) From: Mark Crispin Subject: Re: SORT, THREAD, and VIEW To: Chris Newman cc: Pete Resnick , IMAP Extensions WG In-Reply-To: <1021299.3175417622@nifty-jr.west.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Wed, 16 Aug 2000 12:27:02 -0700, Chris Newman wrote: > If server vendors can get away with implementing SORT/THREAD without > implementing VIEW, we know they will. This is a poor argument for a proposal that would cause substantial problems for an installed base. If you really believe that "server vendors [will] get away with implementing SORT/THREAD without implementing VIEW", that suggests that you fear that VIEW isn't very useful given top-level SORT/THREAD. As a server (and client) implementor who currently uses top-level SORT/THREAD extensively and intends to continue doing so, I believe that VIEW (as currently described) is very useful and will quickly become a "must have" functionality. The desirable aspect of the current description of VIEW lies in the ability to establish views independently from whatever other sorting or threading the client is doing. Discussions with the other server implementor (CMU) of top-level SORT/THREAD indicate to me that they have similar opinions. Unfortunately, your proposal would effectively: . render this use of VIEW impossible . render VIEW into a more complex interface than top-level SORT/THREAD, with no value added since we'd be stuck with the "search all" form . cause substantial damage to an installed base which which been in place for years, and force a costly transition with no benefit Consequently, I have serious reservations about the proposal. I would be hard put to justify work on it in the UW IMAP server, not to mention a great deal of work in Pine, merely to preserve the user interface status quo. We have something that works now, is widely distributed, and is much simpler. > However, I could live with a compromise where the capabilities are > "VIEW=SORT" and "VIEW=THREAD" and these capabilities imply both the > presence of the VIEW extension and the separate SORT/THREAD commands. Now, I'm confused. I had heard about this, but I thought that the idea was to permit implementing THREAD through VIEW without implementing the top-level THREAD command (which would continue to be implemented through the THREAD=xxx capability). It sounded to me like a bad idea, but I was willing to go along with it if we could move forward. Now, you propose to require *both* THREAD through VIEW and the top-level THREAD command, with both indicated by the VIEW=THREAD capability. Leaving aside the syntactic sugar (THREAD algorithms have to be listed; there are two now and a third is likely soon), I don't see the benefit for anyone. It gives the appearance of "requiring server implementors to implement VIEW to allow threading". However, the horse is long out of the barn. If a client wants to do top-level THREAD, it must look for the THREAD=xxx capability during some indefinite transition period. I think that your feared outcome is more likely to happen if you do this. In conclusion, I believe that this proposal adds no benefit and has the potention to cause a great deal of harm. It seeks to prevent something ("server vendors [will] implement... SORT/THREAD without implementing VIEW") that is not likely to happen with the current description, but could result if the proposal is adopted. As a compromise, how about a BCP document that mandates that VIEW (as it is currently described), SORT, and THREAD must be implemented together in a server? A simple server upgrade and the BCP is satisfied, without breaking the installed base. -- Mark -- Received: by ns.secondary.com (8.9.3/8.9.3) id MAA13695 for ietf-imapext-bks; Wed, 16 Aug 2000 12:28:30 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id MAA13691 for ; Wed, 16 Aug 2000 12:28:29 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id MAA16014; Wed, 16 Aug 2000 12:28:20 -0700 (PDT) Received: from nifty-jr.west.sun.com (nifty-jr.West.Sun.COM [129.153.12.95]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id MAA01097; Wed, 16 Aug 2000 12:28:16 -0700 (PDT) Date: Wed, 16 Aug 2000 12:27:02 -0700 From: Chris Newman To: Pete Resnick , Mark Crispin cc: IMAP Extensions WG Subject: Re: SORT, THREAD, and VIEW Message-ID: <1021299.3175417622@nifty-jr.west.sun.com> In-Reply-To: X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: The reason I find compelling for tightly binding SORT/THREAD to VIEW is: If server vendors can get away with implementing SORT/THREAD without implementing VIEW, we know they will. If client venders have to support three different protocol models: (a) unextended (b) SORT/THREAD only (c) VIEW+SORT/THREAD, that makes clients massively more complex than necessary. Most client vendors only want to support a (for disconnected) and c (for online). So if SORT/THREAD is decoupled from VIEW, then either end users or client vendors lose big time. However, I could live with a compromise where the capabilities are "VIEW=SORT" and "VIEW=THREAD" and these capabilities imply both the presence of the VIEW extension and the separate SORT/THREAD commands. On 8/3/00 at 3:24 PM -0700, Mark Crispin wrote: >We need sorting and threading that is decoupled from VIEW; to be >able to SORT/THREAD one set of messages while VIEWing a different >set. Mark, I'd like to hear a real world scenario behind this position. While I can envision SEARCH within an active VIEW, I'm having a hard time imagining why it would ever be necessary to perform a SORT/THREAD on a mailbox other than the one the client is displaying to the user. Given the strong sentiments from others at the WG meeting, I'm doubtful even my compromise proposal can get rough concensus without a well justified need for the separate SORT/THREAD commands. - Chris Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id HAA12259 for ietf-imapext-bks; Mon, 14 Aug 2000 07:19:45 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA12255 for ; Mon, 14 Aug 2000 07:19:43 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 79A952201F; Mon, 14 Aug 2000 17:04:02 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id 8D468B3802 for ; Mon, 14 Aug 2000 17:03:59 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id JAA19793 for ietf-123-outbound.09@ietf.org; Mon, 14 Aug 2000 09:15:02 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id HAA18748 for ; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03337; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Message-Id: <200008141102.HAA03337@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-01.txt Date: Mon, 14 Aug 2000 07:02:05 -0400 X-AntiVirus: scanned for viruses by Amavis 0.2.1-pre2 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-01.txt Pages : 12 Date : 11-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-01.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-01.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-01.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-01.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-01.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id GAA11608 for ietf-imapext-bks; Mon, 14 Aug 2000 06:58:32 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA11603 for ; Mon, 14 Aug 2000 06:58:30 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 093AD2201F; Mon, 14 Aug 2000 16:42:49 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id CBF40B3802 for ; Mon, 14 Aug 2000 16:42:46 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id JAA19686 for ietf-123-outbound.09@ietf.org; Mon, 14 Aug 2000 09:05:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id HAA18741 for ; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03323; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Message-Id: <200008141102.HAA03323@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-04.txt Date: Mon, 14 Aug 2000 07:02:00 -0400 X-AntiVirus: scanned for viruses by Amavis 0.2.1-pre2 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-04.txt Pages : 10 Date : 11-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-04.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-04.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-04.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-04.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-04.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id EAA08778 for ietf-imapext-bks; Mon, 14 Aug 2000 04:02:27 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id EAA08774 for ; Mon, 14 Aug 2000 04:02:26 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03337; Mon, 14 Aug 2000 07:02:05 -0400 (EDT) Message-Id: <200008141102.HAA03337@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-01.txt Date: Mon, 14 Aug 2000 07:02:05 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-thread-01.txt Pages : 12 Date : 11-Aug-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-01.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-01.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-01.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-01.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-01.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092639.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id EAA08772 for ietf-imapext-bks; Mon, 14 Aug 2000 04:02:22 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id EAA08767 for ; Mon, 14 Aug 2000 04:02:21 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA03323; Mon, 14 Aug 2000 07:02:00 -0400 (EDT) Message-Id: <200008141102.HAA03323@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-sort-04.txt Date: Mon, 14 Aug 2000 07:02:00 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - SORT EXTENSION Author(s) : M. Crispin, K. Murchison Filename : draft-ietf-imapext-sort-04.txt Pages : 10 Date : 11-Aug-00 This document describes an experimental server-based sorting extension to the IMAP4rev1 protocol, as implemented by the University of Washington's IMAP toolkit. This extension provides substantial performance improvements for IMAP clients which offer sorted views. A server which supports this extension indicates this with a capability name of 'SORT'. Client implementations SHOULD accept any capability name which begins with 'SORT' as indicating support for the extension described in this document. This provides for future upwards-compatible extensions. At the time of this document was written, the IMAP Extensions Working Group (IETF-IMAPEXT) was considering upwards-compatible additions to the SORT extension described in this document, tenatively called the SORT2 extension. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-sort-04.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-sort-04.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-sort-04.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-sort-04.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-sort-04.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000811092623.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id KAA02536 for ietf-imapext-bks; Fri, 11 Aug 2000 10:05:53 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (tpb@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id KAA02532 for ; Fri, 11 Aug 2000 10:05:52 -0700 (PDT) Date: Fri, 11 Aug 2000 10:03:52 -0700 (PDT) From: Mark Crispin Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt To: Paul Overell cc: ietf-imapext@imc.org In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Fri, 11 Aug 2000 17:47:08 +0100, Paul Overell wrote: > Will the REFERENCES specification deal with referenced, but unavailable, > messages? I submitted the version with the REFERENCES specification yesterday. I think that it answers your questions. Received: by ns.secondary.com (8.9.3/8.9.3) id JAA01017 for ietf-imapext-bks; Fri, 11 Aug 2000 09:50:40 -0700 (PDT) Received: from internal.mail.demon.net (internal.mail.demon.net [193.195.224.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id JAA01010 for ; Fri, 11 Aug 2000 09:50:38 -0700 (PDT) Received: from pillar.turnpike.com (pillar.turnpike.com [194.70.55.2]) by internal.mail.demon.net with ESMTP id RAA09506; Fri, 11 Aug 2000 17:49:58 +0100 (BST) Message-ID: Date: Fri, 11 Aug 2000 17:47:08 +0100 To: ietf-imapext@imc.org From: Paul Overell Reply-To: Paul Overell Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt References: <20000808102623.A32340@speed.doit.wisc.edu> In-Reply-To: MIME-Version: 1.0 X-Mailer: Turnpike Integrated Version 5.01 M Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: In article , Mark Crispin writes >On Tue, 8 Aug 2000 10:26:23 -0500, Jon Miner wrote: >> Just wanted to note (as has probably already been noted) that message >> threading is better based on the "In-Reply-To:" header and the >> "References:" header. Using these fields makes subthreading much >> easier. This didn't seem to be mentioned in the document. > >We are working on the specification (and reference implementation) for the >REFERENCES algorithm and have been for the past month. Please be patient. > >What you should look at in the current document is the framework provided >(e.g. new algorithms can be added at any time, representation of trees, etc.) > Will the REFERENCES specification deal with referenced, but unavailable, messages? For example, message C references B references A and, for whatever reason, messages A and C are available but B is not available. Then I would still want B to be represented in the thread structure - otherwise it would give the false impression that C replied to A. The syntax in the draft currently can only return sequence numbers or UIDs whereas for message B all that is known is its message-id. Suggestion: If A is message 1, and B has message-id , and C is message 3 then the server response would be S: * THREAD (1 "" 3) and the corresponding syntax thread-members = (nz-number / msg-id) *(SP (nz-number / msg-id)) [SP thread-nested] msg-id = string Regards -- Paul Overell T U R N P I K E Received: by ns.secondary.com (8.9.3/8.9.3) id GAA12595 for ietf-imapext-bks; Thu, 10 Aug 2000 06:03:54 -0700 (PDT) Received: from sj-msg-core-1.cisco.com (sj-msg-core-1.cisco.com [171.71.163.11]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id GAA12587 for ; Thu, 10 Aug 2000 06:03:53 -0700 (PDT) From: fred@cisco.com Received: from irp-view7.cisco.com (irp-view7.cisco.com [171.69.25.24]) by sj-msg-core-1.cisco.com (8.9.3/8.9.1) with ESMTP id GAA11820; Thu, 10 Aug 2000 06:02:29 -0700 (PDT) Received: (fred@localhost) by irp-view7.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) id GAA29405; Thu, 10 Aug 2000 06:02:13 -0700 (PDT) Date: Thu, 10 Aug 2000 06:02:13 -0700 (PDT) Message-Id: <200008101302.GAA29405@irp-view7.cisco.com> To: ietf-imapext@imc.org, mrc@cac.washington.edu Subject: draft-ietf-imapext-thread-00.txt Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: I notice that you recently posted a new internet draft. A document that might be worth reading is http://www.ietf.org/ID-nits.html This document was put together by members of the IESG to help the community know what are the most common problems that we see in documents, whether from working groups or individual submissions, and pro-actively avoid them. This is an automatic email; please don't conclude that I have discovered something awful about your draft, as I haven't even read it yet. Rather, I'm just letting you know that there is a list of common issues that get raised over and over again in IESG reviews, and I'd like to save you the hassle by letting you see for yourself whether any of them apply. Let me know if you have any questions I can answer. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id UAA28190 for ietf-imapext-bks; Wed, 9 Aug 2000 20:06:04 -0700 (PDT) Received: from bird (sero.mf.ejf.hu [193.225.84.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id UAA28140; Wed, 9 Aug 2000 20:05:54 -0700 (PDT) From: nan@quotepool.com Received: from mxspr.mail.accesscomp1.net (host10.4ua.com) by bird with SMTP (1.39.111.2/16.2) id AA067490053; Thu, 10 Aug 2000 03:14:13 +0200 Date: Thu, 10 Aug 2000 03:14:13 +0200 Message-Id: <965875852.cqcoqcngetrm@cqcoqcngetrm.mail.accesscomp1.net> To: cqcoqcngetrm@accesscomp1.net Reply-To: nan@quotepool.com X-Mailer: Mozilla 4.51 [en] (Win98; I) X-Accept-Language: en Content-Type: text/html; Charset=us-ascii Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: Are you looking for a J.O.B. or Financial Freedom? vyjxg Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe:

93% WHO RESPOND TO MY AD DON'T MAKE THE CUT!
(Only highly motivated people should call)

I'm dead serious! Now let me tell you why...

Most people don't have drive! They sit around waiting for something to happen.
They see that other people have nice homes, new cars, and MONEY, but why can't they?
They basically feel sorry for themselves, and I can't help these people!

Another reason people are not qualified...

They are skeptical. BUT, the truth is, they are skeptical of themselves!
They don't have the courage to break their routine.
They are comfortable with their set hours, their set pay, and their set future.
I was not comfortable with someone controlling my future,
and I'm not comfortable working with people who are!


STOP
If you are anything like the above, we won't be able to work together!

WHAT DO THE 7% WHO DO MAKE THE CUT DISCOVER?!

People I select through an "interview like" process are forever changed!
They are opened to a world around them that they didn't know existed.
In fact, it's a world that has existed around them their whole lives,
but was purposely hidden from them!



How would you like to...

- Drastically reduce personal, business and capital gains taxes?
- Protect all assets from any form of seizure, liens, or judgments?
- Create a six figure income every 4 months?

How about...

Restoring and preserving complete personal and financial privacy?
Amassing personal wealth, multiplying it and protecting it?
Realizing a 3 to 6 times greater return on your money?
Legally making yourself and your assets completely judgment-proof,
lien-proof, divorce-proof, attorney-proof, IRS-proof?
I could go on...


TAKE A SERIOUS LOOK AT YOUR LIFE

Do you think you are paid what you are worth?
Will you be set to retire in the next few years?
Do you control the course of your day? ...your life?

The fact is we have many people in our enterprise that earn over 50K per month
from the privacy of their own homes, and are retiring in 2 to 3 years (wealthy)
and have total freedom - both personal and financial!

Many have been conditioned to believe it must be illegal, immoral or unethical
to ever earn any real profits from our efforts.

The sad truth is, it's been designed that way by the ultra-rich
and ultra-powerful since before any of us were born!


Who am I?

I'm a BIG thinker, a BIG dreamer, and I believe that I deserve the best that life has to offer.
I answered an ad much like the one you are reading now,
and was eager to hear what it was about.

I knew that I couldn't invest only a few bucks and spend an hour or two
per week to achieve the results I was looking for. I found the right information
and now I control my own destiny!

If you are interested in radically changing your thoughts and your financial future,
I invite you to call TOLL FREE:


1 800 707 4817

My name is Krystina, and I look forward to working with some of you!

* REMEMBER *

I can't do it for you, but I can show you exactly how I do it.
It's as simple as that!

Received: by ns.secondary.com (8.9.3/8.9.3) id JAA11469 for ietf-imapext-bks; Tue, 8 Aug 2000 09:42:27 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (pell@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id JAA11462 for ; Tue, 8 Aug 2000 09:42:22 -0700 (PDT) Date: Tue, 8 Aug 2000 09:44:34 -0700 (PDT) From: Mark Crispin Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt To: Jon Miner cc: ietf-imapext@imc.org In-Reply-To: <20000808102623.A32340@speed.doit.wisc.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: On Tue, 8 Aug 2000 10:26:23 -0500, Jon Miner wrote: > Just wanted to note (as has probably already been noted) that message > threading is better based on the "In-Reply-To:" header and the > "References:" header. Using these fields makes subthreading much > easier. This didn't seem to be mentioned in the document. We are working on the specification (and reference implementation) for the REFERENCES algorithm and have been for the past month. Please be patient. What you should look at in the current document is the framework provided (e.g. new algorithms can be added at any time, representation of trees, etc.) Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id IAA06499 for ietf-imapext-bks; Tue, 8 Aug 2000 08:22:11 -0700 (PDT) Received: from speed.doit.wisc.edu (speed.doit.wisc.edu [128.104.18.148]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA06492 for ; Tue, 8 Aug 2000 08:22:10 -0700 (PDT) Received: (from miner@localhost) by speed.doit.wisc.edu (8.10.1/8.10.1) id e78FQN632504 for ietf-imapext@IMC.ORG; Tue, 8 Aug 2000 10:26:23 -0500 Date: Tue, 8 Aug 2000 10:26:23 -0500 From: Jon Miner To: ietf-imapext@imc.org Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt Message-ID: <20000808102623.A32340@speed.doit.wisc.edu> References: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <200008081417.KAA03007@ietf.org>; from Internet-Drafts@ietf.org on Tue, Aug 08, 2000 at 10:17:25AM -0400 X-Mailer: Mutt 1.0.1i http://www.mutt.org/ X-Editor: Vim 5.5 http://www.vim.org/ X-Shell: tcsh 6.08.00 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Just wanted to note (as has probably already been noted) that message threading is better based on the "In-Reply-To:" header and the "References:" header. Using these fields makes subthreading much easier. This didn't seem to be mentioned in the document. thanks, jon * Internet-Drafts@ietf.org (Internet-Drafts@ietf.org) [000808 09:35]: > A New Internet-Draft is available from the on-line Internet-Drafts directories. > This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. > > Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION > Author(s) : M. Crispin > Filename : draft-ietf-imapext-thread-00.txt > Pages : 7 > Date : 27-Jul-00 > > This document describes the server-based threading extension to the > IMAP4rev1 protocol. This extension provides substantial performance > improvements for IMAP clients which offer threaded views. > A server which supports this extension indicates this with more or > more capability names consisting of 'THREAD-' followed by a supported > threading algorithm name as described in this document. This > provides for future upwards-compatible extensions. > > A URL for this Internet-Draft is: > http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt > > Internet-Drafts are also available by anonymous FTP. Login with the username > "anonymous" and a password of your e-mail address. After logging in, > type "cd internet-drafts" and then > "get draft-ietf-imapext-thread-00.txt". > > A list of Internet-Drafts directories can be found in > http://www.ietf.org/shadow.html > or ftp://ftp.ietf.org/ietf/1shadow-sites.txt > > > Internet-Drafts can also be obtained by e-mail. > > Send a message to: > mailserv@ietf.org. > In the body type: > "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". > > NOTE: The mail server at ietf.org can return the document in > MIME-encoded form by using the "mpack" utility. To use this > feature, insert the command "ENCODING mime" before the "FILE" > command. To decode the response(s), you will need "munpack" or > a MIME-compliant mail reader. Different MIME-compliant mail readers > exhibit different behavior, especially when dealing with > "multipart" MIME messages (i.e. documents which have been split > up into multiple messages), so check your local documentation on > how to manipulate these messages. > > > Below is the data which will enable a MIME compliant mail reader > implementation to automatically retrieve the ASCII version of the > Internet-Draft. -- .Jonathan J. Miner------------------Division of Information Technology. |miner@doit.wisc.edu University Of Wisconsin - Madison| |608/262.9655 Room 3149 Computer Science| `---------------------------------------------------------------------' We question most of the mantras around here periodically, in case you hadn't noticed. :-) -- Larry Wall in <199705101952.MAA00756@wall.org> Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id IAA03324 for ietf-imapext-bks; Tue, 8 Aug 2000 08:09:17 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA03315 for ; Tue, 8 Aug 2000 08:09:15 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id D23DD22010; Tue, 8 Aug 2000 17:57:28 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id 2300AB3802 for ; Tue, 8 Aug 2000 17:57:27 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id KAA26873 for ietf-123-outbound.09@ietf.org; Tue, 8 Aug 2000 10:25:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id KAA26681 for ; Tue, 8 Aug 2000 10:17:34 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03007; Tue, 8 Aug 2000 10:17:25 -0400 (EDT) Message-Id: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-00.txt Date: Tue, 08 Aug 2000 10:17:25 -0400 X-AntiVirus: scanned for viruses by AMaViS 0.2.1-pre2 (http://amavis.org/) Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin Filename : draft-ietf-imapext-thread-00.txt Pages : 7 Date : 27-Jul-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id IAA02349 for ietf-imapext-bks; Tue, 8 Aug 2000 08:04:59 -0700 (PDT) Received: from picard.noroff.no ([212.20.204.3]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id IAA02345 for ; Tue, 8 Aug 2000 08:04:57 -0700 (PDT) Received: by picard.noroff.no (Postfix, from userid 815) id 1CA9F22010; Tue, 8 Aug 2000 17:53:10 +0200 (CEST) Received: from loki.ietf.org (loki.ietf.org [132.151.1.177]) by picard.noroff.no (Postfix) with ESMTP id B9B31B3802 for ; Tue, 8 Aug 2000 17:53:07 +0200 (CEST) Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id KAA26922 for ietf-123-outbound.09@ietf.org; Tue, 8 Aug 2000 10:35:01 -0400 (EDT) Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id KAA26688 for ; Tue, 8 Aug 2000 10:17:34 -0400 (EDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03060; Tue, 8 Aug 2000 10:17:30 -0400 (EDT) Message-Id: <200008081417.KAA03060@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-To: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-regex-00.txt Date: Tue, 08 Aug 2000 10:17:30 -0400 X-AntiVirus: scanned for viruses by AMaViS 0.2.1-pre2 (http://amavis.org/) Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : IMAP Regular Expressions SEARCH Extension Author(s) : R. Gellens Filename : draft-ietf-imapext-regex-00.txt Pages : 6 Date : 27-Jul-00 This memo describes a regular-expression search facility for the [IMAP] protocol. A server advertises support for this facility by the capability name REGEX. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-regex-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-regex-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-regex-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-regex-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-regex-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id HAA29319 for ietf-imapext-bks; Tue, 8 Aug 2000 07:13:29 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA29296 for ; Tue, 8 Aug 2000 07:13:20 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03060; Tue, 8 Aug 2000 10:17:30 -0400 (EDT) Message-Id: <200008081417.KAA03060@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-regex-00.txt Date: Tue, 08 Aug 2000 10:17:30 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : IMAP Regular Expressions SEARCH Extension Author(s) : R. Gellens Filename : draft-ietf-imapext-regex-00.txt Pages : 6 Date : 27-Jul-00 This memo describes a regular-expression search facility for the [IMAP] protocol. A server advertises support for this facility by the capability name REGEX. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-regex-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-regex-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-regex-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-regex-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-regex-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140521.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id HAA29303 for ietf-imapext-bks; Tue, 8 Aug 2000 07:13:21 -0700 (PDT) Received: from ietf.org (odin.ietf.org [132.151.1.176]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id HAA29294 for ; Tue, 8 Aug 2000 07:13:19 -0700 (PDT) Received: from CNRI.Reston.VA.US (localhost [127.0.0.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03007; Tue, 8 Aug 2000 10:17:25 -0400 (EDT) Message-Id: <200008081417.KAA03007@ietf.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce: ; Cc: ietf-imapext@imc.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-imapext-thread-00.txt Date: Tue, 08 Aug 2000 10:17:25 -0400 Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Internet Message Access Protocol Extension Working Group of the IETF. Title : INTERNET MESSAGE ACCESS PROTOCOL - THREAD EXTENSION Author(s) : M. Crispin Filename : draft-ietf-imapext-thread-00.txt Pages : 7 Date : 27-Jul-00 This document describes the server-based threading extension to the IMAP4rev1 protocol. This extension provides substantial performance improvements for IMAP clients which offer threaded views. A server which supports this extension indicates this with more or more capability names consisting of 'THREAD-' followed by a supported threading algorithm name as described in this document. This provides for future upwards-compatible extensions. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-imapext-thread-00.txt Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-imapext-thread-00.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-imapext-thread-00.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-imapext-thread-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-imapext-thread-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <20000807140449.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: by ns.secondary.com (8.9.3/8.9.3) id QAA04276 for ietf-imapext-bks; Thu, 3 Aug 2000 16:32:41 -0700 (PDT) Received: from episteme-software.com (champdsl-25.mcleodusa.net [216.43.25.67] (may be forged)) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id QAA04272 for ; Thu, 3 Aug 2000 16:32:39 -0700 (PDT) Received: from champdsl-25.mcleodusa.net (216.43.25.68) by episteme-software.com with ESMTP (Eudora Internet Mail Server 3.0.1); Thu, 3 Aug 2000 18:36:13 -0500 Mime-Version: 1.0 X-Sender: resnick@resnick1.qualcomm.com (Unverified) Message-Id: In-Reply-To: References: X-Mailer: Eudora [Macintosh version 5.0b10-09.00] Date: Thu, 3 Aug 2000 18:36:13 -0500 To: Mark Crispin From: Pete Resnick Subject: Re: SORT, THREAD, and VIEW Cc: IMAP Extensions WG Content-Type: text/plain; charset="us-ascii" ; format="flowed" Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Please, change the subject if this is issue specific rather than about the minutes per se. Other folks, please respond to this message; I will keep the entire text of Mark's message in tact here. On 8/3/00 at 3:24 PM -0700, Mark Crispin wrote: >>Long discussion about separate "SORT" and "THREAD" commands. Rough >>concensus that we want to move "SORT" and "THREAD" to historical, >>and that WG will only design VIEW=SORT and VIEW=THREAD for use >>within the VIEW framework. > >I am completely opposed to this proposal. > >The functionality of VIEW should be limited to a framework for dealing with a >subset of messages in a mailbox. Adding functionality that is only accessible >via VIEW is not the way to go. > >I do not understand the purpose of this proposal. It does not >convey any benefit that I can discern. Please explain *why* you think this is "not the way to go". Just saying that it is not will not suffice as an argument. The consensus of the room was (from my understanding of it) that the benefits were: 1. There will be less confusion in the long run if there aren't a new set of commands with similar names that do different things. (One comment was that the current text would disallow a command called "SORT2" because it starts with the same characters as the older SORT command, guaranteeing backward compatibility.) 2. From a client perspective, there is no reason to have a separate command: The separate command is equivalent to the VIEW command with the view wide open. Given that the combined functionality is required, there was no reason to separate out. 3. Functionally, a SORT or a THREAD *is* just a kind of VIEW on the messages. Other folks, please correct, add, or subtract as you see fit. >It removes functionality... What functionality does it remove? >...and severely impairs the usefulness of VIEW for us. It >effectively reduces VIEW to little more than a more complex >mechanism of sorting and threading than we already have. VIEW without a SORT or THREAD criteria applied to it *is* a mechanism for virtual scrollbars. What other "usefulness" did it have from which it is now "reduced"? >We need sorting and threading that is decoupled from VIEW; to be >able to SORT/THREAD one set of messages while VIEWing a different >set. This argues for the ability to do multiple views, not for decoupling. It was decided that SORT and THREAD would have to be done within a VIEW anyway, so the combined functionality must still remain. pr -- Pete Resnick Eudora Engineering - QUALCOMM Incorporated Ph: (217)337-6377 or (858)651-4478, Fax: (858)651-1102 Received: by ns.secondary.com (8.9.3/8.9.3) id PAA03450 for ietf-imapext-bks; Thu, 3 Aug 2000 15:40:11 -0700 (PDT) Received: from Tomobiki-Cho.CAC.Washington.EDU (rded@tomobiki-cho.cac.washington.edu [128.95.135.58]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id PAA03445 for ; Thu, 3 Aug 2000 15:40:10 -0700 (PDT) Date: Thu, 3 Aug 2000 15:24:47 -0700 (PDT) From: Mark Crispin Subject: re: Minutes from IMAPEXT WG To: IMAP Extensions WG In-Reply-To: <1005448.3174280198@hobo150.eng.sun.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: > Long discussion about separate "SORT" and "THREAD" commands. Rough > concensus that we want to move "SORT" and "THREAD" to historical, and that > WG will only design VIEW=SORT and VIEW=THREAD for use within the VIEW > framework. I am completely opposed to this proposal. The functionality of VIEW should be limited to a framework for dealing with a subset of messages in a mailbox. Adding functionality that is only accessible via VIEW is not the way to go. I do not understand the purpose of this proposal. It does not convey any benefit that I can discern. It removes functionality and severely impairs the usefulness of VIEW for us. It effectively reduces VIEW to little more than a more complex mechanism of sorting and threading than we already have. We need sorting and threading that is decoupled from VIEW; to be able to SORT/THREAD one set of messages while VIEWing a different set. Received: (from majordomo@localhost) by ns.secondary.com (8.9.3/8.9.3) id FAA04749 for ietf-imapext-bks; Thu, 3 Aug 2000 05:27:04 -0700 (PDT) Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id FAA04743 for ; Thu, 3 Aug 2000 05:27:03 -0700 (PDT) Received: from westmail2.West.Sun.COM ([129.153.100.30]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id FAA12459 for ; Thu, 3 Aug 2000 05:30:49 -0700 (PDT) Received: from hobo150.eng.sun.com (hobo150.Eng.Sun.COM [129.146.31.150]) by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with ESMTP id FAA27281 for ; Thu, 3 Aug 2000 05:30:46 -0700 (PDT) Date: Thu, 03 Aug 2000 08:29:58 -0400 From: Chris Newman To: IMAP Extensions WG Subject: Minutes from IMAPEXT WG Message-ID: <1005448.3174280198@hobo150.eng.sun.com> X-Mailer: Mulberry/2.0.3 (MacOS) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: owner-ietf-imapext@mail.imc.org Precedence: bulk List-Archive: List-ID: List-Unsubscribe: Here are the raw minutes from the WG meeting in Pittsburgh. Please speak up if I got something wrong, or missed something IMAP extensions WG 2000-31-07 15:30 Chair: Pete Resnick Minute Taker: Chris Newman Chair says he will have more time to keep working group running on September 1. VIEW draft ---------- One comment that the new flag-based model looks good. Barry suggested that the extended SELECT command have the VIEW SET argument put in parens. Agreed. Alexey was unsure if we had rough concensus on the issue of COPY perserving VIEW order. Rough concensus that we did. Question about view search response: why is it "* VIEW SEARCH" instead of "* SEARCH". There is preference at the meeting to remove VIEW from the response to match UID SEARCH model. Note "* VIEW SEARCH" might use a "0" to indicate a match outside of view. Not desirable since it could put extra load on server. Eliminate use of "* VIEW" response to notify of message outside of view, since EXISTS notifies client of new message. Rough concensus to remove it. VIEW draft doesn't refer to thread and thread doesn't refer to view. Proposal that other extensions that interact with view should describe how they interact with VIEW. Discussion about how historical SORT and VIEW will interact. Rules, if any, have to go into the SORT draft since VIEW can't reference SORT. Rough concensus that the WG's "VIEW=SORT" extension will not include a "SORT" command. Base view spec defines "VIEW=SEARCH" which is required if the server implements any VIEW support. Long discussion about separate "SORT" and "THREAD" commands. Rough concensus that we want to move "SORT" and "THREAD" to historical, and that WG will only design VIEW=SORT and VIEW=THREAD for use within the VIEW framework. Annotate draft -------------- Issue: Untagged MODTIME response, verses VALIDTIME fetch data item. Decision to go forward with untagged MODTIME response. Some concern about whether MODTIME applies to entire mailbox or some message set. Perhaps this can be done as a separate extension. We need this for disconnected resync. Rough concensus to move this to a design time to proposal included in annotate or separate. Issue: Want to include all standard flags in annotate framework to improve ability for disconnected clients to update old flags. There was rough concensus that this is a valuable idea for disconnected support, but some concern that interaction with existing IMAP flags is tricky. Need to see text. Issue: Conditional ANNOTATION store. Perhaps linked with disconnected resync and should go with design team. Needed for helpdesk application. Should we add a full lock command? No, conditional store is good enough. This issue is a known problem with existing mailbox flags. Rough concensus to move forward with this. Issue: Servers must not send annotation data in unsolicited response until client has used annotation data in fetch command. Concern that this is a client mode. Some feeling that if a client mode is used then it should be explicitly requested. Suggestion that we can notify client of annotation changes with a new readonly flag that indicates annotations have changed on that message. Concern that we need to know which annotations have changed. Punt to design team. Issue: Shared vs. Private annotations. Options: * always shared * always private * both * server determines scope of each annotation Want clients to know what's going on, want flexability. Always shared is not an option because we'd like to unify flags with annotate model, and potential security issue. Rough concensus that server determines isn't good idea because client doesn't know what's going on. Extreme concern that clients will only look at personal or only look at shared. Other option is to have personal shadow from shared. Weak rough concensus for both pers.x and shared.x, but there is a lot of concern. Design team needs to discuss more. Regexp draft ------------ Interoperability concern with multiple incompatible regexp syntaxes. Internationalization concerns. We need better searching, but might be fine with just globbing. Need beginning and end of word. We don't have concensus in this room on what we want to do. Suggestion to put regexp keyword right in front of string it applies to in search program. Command Plus ------------ Comes from desire to combine variants of LIST command (Referrals, subscriptions). Want to have a generic framework for extending commands. Concern is that if we open up extension of the commands prior to authenticated state that it will result in incautious server implementors reintroducing buffer overflow bugs. Rough concensus to go ahead with extended LIST draft which includes advice on how to design extensible IMAP commands, rather than separate informational command plus. ACL draft --------- Slam dunk issues: add separate "x" right for mailbox deletion. Issuing automatic "* OK [MYRIGHTS ..]" responses on select. Ability to replace entire ACL and/or replace ACL for multiple identifiers. Issue: mailbox hierarchy inheritance/wild cards (Crispin) * wild cards for changing the ACLs for multiple mailboxes is a slam dunk * an ACL which affects multiple mailboxes is problematic No, that's not what we want. Issuing automatic ACL on select (Crispin) We think he meant "MYRIGHTS", but need to confirm that. Query potential rights for multiple identifiers (Crispin) Nobody else wanted this. Query for available identifiers / Identifier completion / Which sets of combinations are valid? One option is a URL of the identifier directory, otherwise we want to stay out of directory problem. Map between identifiers and real names (Daboo) URL of the directory and how to lookup users? Some of us can't give a URL for all users, only for users within a given domain. Describe what groups are and how they work (Simon Josefsson) Rough concensus that group management and discovery is out of band. Best we could do is point to an out-of-band service. Group inheritance "+" syntax (Crispin). We have operational experience with negative rights as they work in the current draft. Feeling that deployed ACL servers implement group inheritance. Precedence set by ACAP spec on standards track. People understand current negative rights model. Discussion of unix model where owner rights take preference over group rights. One unix case can't be encoded: user has read, group has no rights, other has read/write. Rough concensus we're not concerned with exceptional Unix case. Solid rough concensus to follow model in current draft: union of positive minus union of negative. Command Macro Issue ------------------- Some support for this idea. Some discussion of compression alternatives. IMAP responses are the chatty problem and command macros don't help that. WG ended 15 minutes over time.