
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 <ietf-imapext@imc.org>; 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" <warren.l.brown@syntegra.com>
Subject: typos in draft-ietf-imapext-thread-02.txt
To: "MRC@CAC.Washington.EDU" <MRC@cac.washington.edu>
cc: "ietf-imapext@imc.org" <ietf-imapext@imc.org>
Message-Id: <ISSMTP.2001_2_.20000830091203.4293941997C@cdc.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<html><head></head><body>
<font size=2 color="#000000">more or more -&gt; one or more</font><div>
<font size=2 color="#000000">to determining -&gt; to determine</font><div>
<font size=2 color="#000000">inconsistant -&gt; inconsistent</font><div>
<font ></font></body></html>
--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 <ietf-imapext@imc.org>; 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" <warren.l.brown@syntegra.com>
Subject: typos in draft-ietf-imapext-sort-05.txt
To: "MRC@CAC.Washington.EDU" <MRC@cac.washington.edu>
cc: "ietf-imapext@imc.org" <ietf-imapext@imc.org>
Message-Id: <ISSMTP.2001_2_.20000830090612.4293941997B@cdc.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Fri, 25 Aug 2000 12:06:50 -0700 (PDT)
Date: Fri, 25 Aug 2000 12:05:10 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT)
   From: Mark Crispin <MRC@cac.washington.edu>

   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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>, Chris Newman <cnewman@INNOSOFT.COM>
In-Reply-To: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu>
Message-ID: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: re: Modularity vs. Protocol options
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <984785.3176137441@localhost>
Message-ID: <MailManager.967188901.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: re: Simplified VIEW strawman
Message-ID: <1140799.3176140035@[192.129.100.100]>
In-Reply-To: <MailManager.967169345.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 24, 2000 19:09 -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: re: Simplified VIEW strawman
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <629316.3176129559@nifty-jr.west.sun.com>
Message-ID: <MailManager.967169345.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: re: Modularity vs. Protocol options
Message-ID: <984785.3176137441@localhost>
In-Reply-To: <MailManager.967161033.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Mark Crispin <MRC@cac.washington.edu>
Cc: IMAP Extensions WG <ietf-imapext@imc.org>, Chris Newman <cnewman@INNOSOFT.COM>
In-reply-to: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT)
   From: Mark Crispin <MRC@cac.washington.edu>

   [...]
   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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 18:14:18 -0700 (PDT)
Date: Thu, 24 Aug 2000 18:12:39 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Simplified VIEW strawman
Message-ID: <629316.3176129559@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 
<MRC@cac.washington.edu> 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 <viewpos>
* 2005 EXISTS (VIEW <viewpos> <viewpos> <viewpos> ...)

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 <start> <end> <descend> SORT ... rest of subcommand
* VIEW WINDOW <start> ... subset of SORT results
tag VIEW WINDOW <start> <end> <descend> THREAD ... rest of subcommand
* VIEW WINDOW <start> (+n seqno seqno ...) seqno seqno (seqno seqno +n)
tag VIEW WINDOW <start> +<count> <descend> THREAD ... rest of subcommand
* VIEW WINDOW <start> (+n seqno seqno ...) seqno (seqno +n) (seqno seqno +n)
tag VIEW WINDOW <start> <end> <descend>
(returns window data for new range from previous VIEW)

If <descend> is true, results for all sub-threads will be included 
(<descend> is ignored with SORT).  Otherwise only results for the top level 
will be included.  The +<count> 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 17:11:45 -0700 (PDT)
Date: Thu, 24 Aug 2000 16:50:33 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: re: Modularity vs. Protocol options
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <302707.3176124129@nifty-jr.west.sun.com>
Message-ID: <MailManager.967161033.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 16:43:48 -0700 (PDT)
Date: Thu, 24 Aug 2000 16:42:09 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <BE97ACF1A2EB464886E1DAF6C51BAC6E85CEAE@DF-SPOT.platinum.corp.microsoft.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Microsoft Canards
Thread-Index: AcAN83Q7OqTT2Rc9RIC9hs0EgxIsSgAGw/Zg
From: "Larry Osterman" <larryo@exchange.MICROSOFT.com>
To: "Chris Newman" <cnewman@INNOSOFT.COM>, "Mark Crispin" <MRC@cac.washington.edu>
Cc: "IMAP Extensions WG" <ietf-imapext@imc.org>
X-OriginalArrivalTime: 24 Aug 2000 21:08:31.0944 (UTC) FILETIME=[752B3C80:01C00E0F]
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.4417.0">
<TITLE>RE: Microsoft Canards</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>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 &quot;hee hee - =
wasn't Bill Gates (Mr. Bloatware himself) so stupid back then&quot; - =
and that's how urban legends like this one get started.</FONT></P>

<P><FONT SIZE=3D2>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&amp;white text-only =
display adapter.&nbsp; That was it, nothing else.&nbsp; It wasn't until =
'83 that PC's started coming with a floppy drive as a standard =
option.&nbsp; 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...</FONT></P>

<P><FONT SIZE=3D2>Anyway, as I said - it's one of my personal hot =
buttons, so.....</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Larry Osterman</FONT>

<BR><FONT SIZE=3D2>Sent from larryo-laptop.dns.microsoft.com running NT5 =
and Outlook 2000 and Exchange Platinum!&nbsp; Please notify the sender =
of any difficulties.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=3D2>&gt; -----Original Message-----</FONT>

<BR><FONT SIZE=3D2>&gt; From: Chris Newman [<A =
HREF=3D"mailto:cnewman@innosoft.com">mailto:cnewman@innosoft.com</A>]</FO=
NT>

<BR><FONT SIZE=3D2>&gt; Sent: Thursday, August 24, 2000 10:46 AM</FONT>

<BR><FONT SIZE=3D2>&gt; To: Larry Osterman; Mark Crispin</FONT>

<BR><FONT SIZE=3D2>&gt; Cc: IMAP Extensions WG</FONT>

<BR><FONT SIZE=3D2>&gt; Subject: Re: Microsoft Canards</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; Very sorry, I must have misremembered the quote =
attribution.&nbsp; </FONT>

<BR><FONT SIZE=3D2>&gt; The point I </FONT>

<BR><FONT SIZE=3D2>&gt; was trying to make is that smart and famous =
people often fail </FONT>

<BR><FONT SIZE=3D2>&gt; to predict </FONT>

<BR><FONT SIZE=3D2>&gt; the requirements for the future.&nbsp; Thus =
designing for </FONT>

<BR><FONT SIZE=3D2>&gt; scalability rather </FONT>

<BR><FONT SIZE=3D2>&gt; than for &quot;what works today&quot; is usually =
well worth the effort.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Chris</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>
</P>

</BODY>
</HTML>
------_=_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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 11:22:22 -0700 (PDT)
Date: Thu, 24 Aug 2000 10:49:51 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: Microsoft Canards
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: Larry Osterman <larryo@exchange.MICROSOFT.com>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <646118.3176102782@nifty-jr.west.sun.com>
Message-ID: <MailManager.967139391.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
CC: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Larry Osterman <larryo@exchange.MICROSOFT.com>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: Microsoft Canards
Message-ID: <646118.3176102782@nifty-jr.west.sun.com>
In-Reply-To:  <BE97ACF1A2EB464886E1DAF6C51BAC6E0157FDF1@DF-SPOT.platinum.corp.microsoft.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 02:14:43 -0700 (PDT)
Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Pete Resnick <presnick@qualcomm.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <a0500100ab5ca4758f95c@champdsl-25.mcleodusa.net>
Message-ID: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <a0500100ab5ca4758f95c@champdsl-25.mcleodusa.net>
In-Reply-To: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
References: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
X-Mailer: Eudora [Macintosh version 5.0b10-09.00]
Date: Thu, 24 Aug 2000 00:07:27 -0500
To: Mark Crispin <MRC@cac.washington.edu>
From: Pete Resnick <presnick@qualcomm.com>
Subject: Re: SORT, THREAD, and VIEW
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <mailto:presnick@qualcomm.com>
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 <ietf-imapext@imc.org>; Wed, 23 Aug 2000 20:22:42 -0700 (PDT)
Date: Wed, 23 Aug 2000 20:16:21 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Hugh McIntyre <Hugh.McIntyre@Eng.Sun.COM>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <Roam.SIMC.2.0.6.967086818.13132.hugh@frantic>
Message-ID: <MailManager.967086981.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <Hugh.McIntyre@Eng.Sun.COM>
Reply-To: Hugh McIntyre <Hugh.McIntyre@Eng.Sun.COM>
Subject: Re: SORT, THREAD, and VIEW
To: Mark Crispin <MRC@cac.washington.edu>
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: "Your message with ID" <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
Message-ID: <Roam.SIMC.2.0.6.967086818.13132.hugh@frantic>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <BE97ACF1A2EB464886E1DAF6C51BAC6E0157FDF1@DF-SPOT.platinum.corp.microsoft.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: SORT, THREAD, and VIEW
Thread-Index: AcANVyD8B9f/iOs5RziFVRhVSm004QACFZog
From: "Larry Osterman" <larryo@exchange.MICROSOFT.com>
To: "Mark Crispin" <MRC@cac.washington.edu>, "Chris Newman" <cnewman@INNOSOFT.COM>
Cc: "IMAP Extensions WG" <ietf-imapext@imc.org>
X-OriginalArrivalTime: 24 Aug 2000 00:17:44.0737 (UTC) FILETIME=[B98C3910:01C00D60]
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.4417.0">
<TITLE>Microsoft Canards</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>And I gotta step in here.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; &gt; I'll also note that when Bill Gates said =
that 640K was more than any</FONT>

<BR><FONT SIZE=3D2>&gt; &gt; computer would ever need, that it was =
certainly more than I </FONT>

<BR><FONT SIZE=3D2>&gt; could imagine</FONT>

<BR><FONT SIZE=3D2>&gt; &gt; needing at the time.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; This is irrelevant.&nbsp; Personal computers =
bigger than 640K </FONT>

<BR><FONT SIZE=3D2>&gt; existed before the</FONT>

<BR><FONT SIZE=3D2>&gt; founding of Microsoft.&nbsp; Timesharing systems =
with 10MB or more </FONT>

<BR><FONT SIZE=3D2>&gt; also existed at</FONT>

<BR><FONT SIZE=3D2>&gt; that time.</FONT>
</P>

<P><FONT SIZE=3D2>Bill Gates NEVER said any such thing.&nbsp; 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).&nbsp; 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?).</FONT></P>

<P><FONT SIZE=3D2>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.&nbsp; 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).</FONT></P>

<P><FONT SIZE=3D2>And don't forget that it was Steve Jobs who said that =
a properly designed machine would NEVER require more than 128K of =
RAM.&nbsp; 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.</FONT></P>
<BR>

<P><FONT SIZE=3D2>Larry Osterman</FONT>

<BR><FONT SIZE=3D2>Sent from larryo-laptop.dns.microsoft.com running NT5 =
and Outlook 2000 and Exchange Platinum!&nbsp; Please notify the sender =
of any difficulties.</FONT></P>

</BODY>
</HTML>
------_=_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 <ietf-imapext@imc.org>; Wed, 23 Aug 2000 16:07:22 -0700 (PDT)
Date: Wed, 23 Aug 2000 14:00:01 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <5021320.3176025571@nifty-jr.west.sun.com>
Message-ID: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <sortpos-low> <sortpos-high> ... rest of sort command ...
> * SORT <sortpos-low> ... 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <5021320.3176025571@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966652717.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 19:38 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <sortpos-low> <sortpos-high> ... rest of sort command ...
* SORT <sortpos-low> ... 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 20:01:22 -0700 (PDT)
Date: Fri, 18 Aug 2000 19:38:37 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
cc: Cyrus Daboo <daboo@cyrusoft.com>, Steve Hubert <hubert@cac.washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu>
Message-ID: <MailManager.966652717.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Cyrus Daboo <daboo@cyrusoft.com>, Steve Hubert <hubert@cac.washington.edu>
Cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to:  <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
References: <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT)
   From: Steve Hubert <hubert@cac.washington.edu>
   cc: IMAP Extensions WG <ietf-imapext@imc.org>
   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 <ietf-imapext@imc.org>; 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 <hubert@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <3513213.3175618741@socrates.cyrusoft.com>
Message-ID: <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

On Fri, 18 Aug 2000, Cyrus Daboo wrote:

> --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert
> <hubert@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Cyrus Daboo <daboo@cyrusoft.com>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 18:58 -0400 Cyrus Daboo <daboo@cyrusoft.com> 
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-low> <view-high>
* VIEW MAP <seqno> <seqno-low>:<seqno-high> <seqno> ...
  or for threaded views:
* VIEW MAP (+n <seqno> <seqno> ...) <seqno> ... (<seqno> +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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Steve Hubert <hubert@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <3513213.3175618741@socrates.cyrusoft.com>
In-Reply-To: <Pine.GUL.4.30.0008181555470.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert 
<hubert@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Steve Hubert <hubert@washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1803970.3175607173@nifty-jr.west.sun.com>
In-Reply-To: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 15:04 -0700 Steve Hubert 
<hubert@washington.edu> 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Chris Newman <cnewman@INNOSOFT.COM>
CC: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Chris Newman wrote:
> 
> --On Friday, August 18, 2000 16:54 -0400 Ken Murchison <ken@oceana.com>
> 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 <ietf-imapext@imc.org>; 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 <hubert@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <3161821.3175612899@socrates.cyrusoft.com>
Message-ID: <Pine.GUL.4.30.0008181555470.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 12:28 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> 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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Steve Hubert <hubert@washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <3161821.3175612899@socrates.cyrusoft.com>
In-Reply-To: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 3:04 PM -0700 Steve Hubert 
<hubert@washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 16:54 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 15:04:26 -0700
Date: Fri, 18 Aug 2000 15:04:19 -0700 (PDT)
From: Steve Hubert <hubert@washington.edu>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.COM>
Message-ID: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <hubert@washington.edu>
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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: VIEW and THREAD, was Re: SORT, THREAD, and VIEW
Message-ID: <3019107.3175610526@socrates.cyrusoft.com>
In-Reply-To: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 2:39 PM -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <number>' 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 14:41:55 -0700 (PDT)
Date: Fri, 18 Aug 2000 14:39:49 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <2898802.3175608526@socrates.cyrusoft.com>
Message-ID: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 4:54 PM -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Client needs VIEW map, was Re: SORT, THREAD, and VIEW
Message-ID: <2838756.3175607528@socrates.cyrusoft.com>
In-Reply-To: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 4:12 PM -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Chris Newman <cnewman@INNOSOFT.COM>
CC: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Chris Newman wrote:
> 
> --On Friday, August 18, 2000 14:04 -0400 Ken Murchison <ken@oceana.com>
> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Ken Murchison <ken@oceana.com>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 14:04 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <916836.3175592423@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966547146.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:19 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>, Cyrus Daboo <daboo@cyrusoft.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <winstart> <winsize>) ...
VIEW WINDOW <winstart> <winsize>

Where <winstart> is a VIEW position.  If <winstart> is 0 and/or <winend> 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 <winstart> <winsize>)) ...
* WINDOW <winstart> <seqno> <seqno> <seqno-low>:<seqno-high> <seqno> ...
   or with thread hierarchy:
* WINDOW <winstart> <seqno> (<seqno> <seqno-low>:<seqno-high> (<seqno> +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:

* <n> EXISTS <viewsz>
      (EXPUNGE <seqno> <seqno># <seqno>#<vpos> <seqno-low>:<seqno-high> ...)
      (NEW <vpos> +n <vpos-low>:<vpos-high> -n)

There are a few subtleties.  The EXPUNGE list is evaluated in order, just 
like untagged expunge responses, and omits the #<vpos> for messages outside 
the window.  The "<seqno>#" without a <vpos> indicates the message expunged 
was lower than <winstart>.  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 <seqno>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 <viewsz> <oldpos> <newpos> <oldpos> - <oldpos> +
       <oldpos-low>:<oldpos-high> <newpos>
       + <newpos-low>:<newpos-high> - <newpos> + <newpos>

"+" means any position less that <winstart> in view, "+" means any position 
higher than <winstart>+<winsize> 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 "/<uid>" to be added to every <seqno> 
or <vpos> 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 "/<uid>" 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 11:52:47 -0700 (PDT)
Date: Fri, 18 Aug 2000 11:12:58 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <399D7AC9.AB39D48@oceana.com>
Message-ID: <MailManager.966622378.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Cyrus Daboo <daboo@cyrusoft.com>
CC: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Cyrus Daboo wrote:
> 
> --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman
> <cnewman@INNOSOFT.COM> wrote:
> 
> > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin
> > <MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <874606.3175518277@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966549074.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:51 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: IETF and installed base (was Re: SORT, THREAD, and VIEW)
Message-ID: <831806.3175517565@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 16:13:05 -0700 (PDT)
Date: Thu, 17 Aug 2000 16:12:55 -0700 (Pacific Daylight Time)
From: Mark Crispin <MRC@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <1330217.3175526391@socrates.cyrusoft.com>
Message-ID: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1330217.3175526391@socrates.cyrusoft.com>
In-Reply-To: <MailManager.966548554.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 2:42 PM -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> wrote:

> --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin
> <MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1107297.3175522685@socrates.cyrusoft.com>
Message-ID: <MailManager.966548554.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com>
Message-ID: <MailManager.966549074.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 14:43:10 -0700 (PDT)
Date: Thu, 17 Aug 2000 14:41:49 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <503617.3175512109@nifty-jr.west.sun.com>
In-Reply-To: <399C3F3A.617EA8@oceana.com> <MailManager.966544154.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 13:29 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <172336.3175506601@nifty-jr.west.sun.com>
Message-ID: <MailManager.966547146.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 1:50 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <317507.3175509015@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Wednesday, August 16, 2000 18:18 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <399C3F3A.617EA8@oceana.com>
Message-ID: <MailManager.966544154.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 13:11:24 -0700 (PDT)
Date: Thu, 17 Aug 2000 13:10:01 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:03 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Lawrence Greenfield wrote:
> 
>    Date: Thu, 17 Aug 2000 14:03:42 -0400
>    From: Ken Murchison <ken@oceana.com>
>    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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to: <399C28FE.1E36828A@oceana.com>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Thu, 17 Aug 2000 14:03:42 -0400
   From: Ken Murchison <ken@oceana.com>
   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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Wed, 16 Aug 2000 19:17:29 -0700 (PDT)
Date: Wed, 16 Aug 2000 18:18:24 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <2252934.3175438099@nifty-jr.west.sun.com>
Message-ID: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <2252934.3175438099@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966455687.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Wed, 16 Aug 2000 14:34:09 -0700 (PDT)
Date: Wed, 16 Aug 2000 12:54:47 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: Pete Resnick <presnick@qualcomm.com>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1021299.3175417622@nifty-jr.west.sun.com>
Message-ID: <MailManager.966455687.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Pete Resnick <presnick@qualcomm.com>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1021299.3175417622@nifty-jr.west.sun.com>
In-Reply-To: <a05000a00b5afae4b7c64@champdsl-25.mcleodusa.net>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Fri, 11 Aug 2000 10:05:52 -0700 (PDT)
Date: Fri, 11 Aug 2000 10:03:52 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
To: Paul Overell <paulo@turnpike.com>
cc: ietf-imapext@imc.org
In-Reply-To: <z5Dd4dBM4Cl5QAJR@turnpike.com>
Message-ID: <MailManager.966013432.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <z5Dd4dBM4Cl5QAJR@turnpike.com>
Date: Fri, 11 Aug 2000 17:47:08 +0100
To: ietf-imapext@imc.org
From: Paul Overell <listsub@pillar.turnpike.com>
Reply-To: Paul Overell <paulo@turnpike.com>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
References: <20000808102623.A32340@speed.doit.wisc.edu> <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
In-Reply-To: <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
X-Mailer: Turnpike Integrated Version 5.01 M <U2yaxlNz9mbtXQDcM+J3SutElj>
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

In article <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>, Mark
Crispin <MRC@cac.washington.edu> 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 <x@y>, and C is message 3 then
the server response would be

   S: * THREAD (1 "<x@y>" 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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

<HTML><BODY BGCOLOR="#408080"></P><P ALIGN=CENTER><FONT  SIZE=4 PTSIZE=11><B>93% WHO RESPOND TO MY AD DON'T MAKE THE CUT!<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>(Only highly motivated people should call)<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>I'm dead serious! Now let me tell you why...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>Most people don't have <U>drive</U>! They sit around waiting for something to happen.<BR>
They see that other people have nice homes, new cars, and MONEY, but why can't they?<BR>
They basically feel sorry for themselves, and I can't help these people!<BR>
</FONT><FONT  SIZE=3 PTSIZE=9><BR>
</FONT><FONT  SIZE=3 PTSIZE=10>Another reason people are not qualified...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>They are skeptical. BUT, the truth is, they are skeptical of themselves!<BR>
They don't have the <U>courage</U> to break their routine.<BR>
They are comfortable with their set hours, their set pay, and their set future.<BR>
I was not comfortable with someone controlling my future,<BR>
and I'm not comfortable working with people who are!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>STOP</FONT><FONT  SIZE=4 PTSIZE=12><BR>
</FONT><FONT  SIZE=3 PTSIZE=10>If you are anything like the above, we won't be able to work together!<BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>WHAT DO THE 7% WHO DO MAKE THE CUT DISCOVER?!<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>People I select through an "interview like" process are forever changed!<BR>
They are opened to a world around them that they didn't know existed.<BR>
In fact, it's a world that has existed <U>around</U> them their whole lives,<BR>
but was purposely hidden from them!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>How would you like to...<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>- Drastically <U>reduce</U> personal, business and capital gains taxes?<BR>
- Protect <U>all</U> assets from any form of seizure, liens, or judgments?<BR>
- Create a <U>six figure</U> income every 4 months?<BR>
<BR>
 </FONT><FONT  SIZE=3 PTSIZE=10>How about...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>Restoring and preserving complete personal and financial<U> privacy</U>?<BR>
Amassing personal <U>wealth</U>, multiplying it and protecting it?<BR>
Realizing a 3 to 6 times <U>greater return</U> on your money?<BR>
<U>Legally</U> making yourself and your assets completely judgment-proof,<BR>
lien-proof, divorce-proof, attorney-proof, IRS-proof?<BR>
I could go on...</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>TAKE A SERIOUS LOOK AT YOUR LIFE<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>Do you think you are paid what you are worth?<BR>
Will you be set to retire in the next few years?<BR>
Do you control the course of your day? ...your life?<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>The fact is we have many people in our enterprise that earn over 50K per month<BR>
from the privacy of their own homes, and are retiring in 2 to 3 years (wealthy)<BR>
and have total freedom - both personal and financial!<BR>
<BR>
Many have been <U>conditioned</U> to believe it must be illegal, immoral or unethical<BR>
to ever earn any real profits from our efforts.<BR>
<BR>
The <U>sad truth</U> is, it's been designed that way by the ultra-rich<BR>
and ultra-powerful since before any of us were born!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>Who am I?<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>I'm a BIG thinker, a BIG dreamer, and I believe that I deserve the best that life has to offer.<BR>
I answered an ad much like the one you are reading now,<BR>
and was eager to hear what it was about.<BR>
<BR>
I knew that I couldn't invest only a few bucks and spend an hour or two<BR>
per week to achieve the results I was looking for.  I found the right information<BR>
and now I control my own destiny!<BR>
<BR>
If you are interested in radically changing your thoughts and your financial future,<BR>
I invite you to call TOLL FREE:</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>1 800 707 4817<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>My name is Krystina, and I look forward to working with some of you!<BR>
<BR>
* REMEMBER *<BR>
<BR>
I can't do it for you, but I can show you exactly how I do it.<BR>
It's as simple as that!</B></P></HTML>



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 <ietf-imapext@imc.org>; Tue, 8 Aug 2000 09:42:22 -0700 (PDT)
Date: Tue, 8 Aug 2000 09:44:34 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
To: Jon Miner <miner@doit.wisc.edu>
cc: ietf-imapext@imc.org
In-Reply-To: <20000808102623.A32340@speed.doit.wisc.edu>
Message-ID: <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@IMC.ORG>; 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 <miner@doit.wisc.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <a05000a00b5afae4b7c64@champdsl-25.mcleodusa.net>
In-Reply-To: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
References: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
X-Mailer: Eudora [Macintosh version 5.0b10-09.00]
Date: Thu, 3 Aug 2000 18:36:13 -0500
To: Mark Crispin <MRC@cac.washington.edu>
From: Pete Resnick <presnick@qualcomm.com>
Subject: Re: SORT, THREAD, and VIEW
Cc: IMAP Extensions WG <ietf-imapext@imc.org>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <mailto:presnick@qualcomm.com>
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 <ietf-imapext@IMC.ORG>; Thu, 3 Aug 2000 15:40:10 -0700 (PDT)
Date: Thu, 3 Aug 2000 15:24:47 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: re: Minutes from IMAPEXT WG
To: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1005448.3174280198@hobo150.eng.sun.com>
Message-ID: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 3 Aug 2000 05:30:46 -0700 (PDT)
Date: Thu, 03 Aug 2000 08:29:58 -0400
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <identifier, rights> 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 <ietf-imapext@imc.org>; 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" <warren.l.brown@syntegra.com>
Subject: typos in draft-ietf-imapext-thread-02.txt
To: "MRC@CAC.Washington.EDU" <MRC@cac.washington.edu>
cc: "ietf-imapext@imc.org" <ietf-imapext@imc.org>
Message-Id: <ISSMTP.2001_2_.20000830091203.4293941997C@cdc.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<html><head></head><body>
<font size=2 color="#000000">more or more -&gt; one or more</font><div>
<font size=2 color="#000000">to determining -&gt; to determine</font><div>
<font size=2 color="#000000">inconsistant -&gt; inconsistent</font><div>
<font ></font></body></html>
--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 <ietf-imapext@imc.org>; 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" <warren.l.brown@syntegra.com>
Subject: typos in draft-ietf-imapext-sort-05.txt
To: "MRC@CAC.Washington.EDU" <MRC@cac.washington.edu>
cc: "ietf-imapext@imc.org" <ietf-imapext@imc.org>
Message-Id: <ISSMTP.2001_2_.20000830090612.4293941997B@cdc.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Fri, 25 Aug 2000 12:06:50 -0700 (PDT)
Date: Fri, 25 Aug 2000 12:05:10 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Fri, 25 Aug 2000 00:58:21 -0700 (PDT)
   From: Mark Crispin <MRC@cac.washington.edu>

   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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>, Chris Newman <cnewman@INNOSOFT.COM>
In-Reply-To: <200008250240.e7P2e6g17020@smtp4.andrew.cmu.edu>
Message-ID: <MailManager.967190301.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: re: Modularity vs. Protocol options
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <984785.3176137441@localhost>
Message-ID: <MailManager.967188901.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: re: Simplified VIEW strawman
Message-ID: <1140799.3176140035@[192.129.100.100]>
In-Reply-To: <MailManager.967169345.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 24, 2000 19:09 -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: re: Simplified VIEW strawman
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <629316.3176129559@nifty-jr.west.sun.com>
Message-ID: <MailManager.967169345.4011.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: re: Modularity vs. Protocol options
Message-ID: <984785.3176137441@localhost>
In-Reply-To: <MailManager.967161033.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Mark Crispin <MRC@cac.washington.edu>
Cc: IMAP Extensions WG <ietf-imapext@imc.org>, Chris Newman <cnewman@INNOSOFT.COM>
In-reply-to: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT)
   From: Mark Crispin <MRC@cac.washington.edu>

   [...]
   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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 18:14:18 -0700 (PDT)
Date: Thu, 24 Aug 2000 18:12:39 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Simplified VIEW strawman
Message-ID: <629316.3176129559@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 
<MRC@cac.washington.edu> 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 <viewpos>
* 2005 EXISTS (VIEW <viewpos> <viewpos> <viewpos> ...)

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 <start> <end> <descend> SORT ... rest of subcommand
* VIEW WINDOW <start> ... subset of SORT results
tag VIEW WINDOW <start> <end> <descend> THREAD ... rest of subcommand
* VIEW WINDOW <start> (+n seqno seqno ...) seqno seqno (seqno seqno +n)
tag VIEW WINDOW <start> +<count> <descend> THREAD ... rest of subcommand
* VIEW WINDOW <start> (+n seqno seqno ...) seqno (seqno +n) (seqno seqno +n)
tag VIEW WINDOW <start> <end> <descend>
(returns window data for new range from previous VIEW)

If <descend> is true, results for all sub-threads will be included 
(<descend> is ignored with SORT).  Otherwise only results for the top level 
will be included.  The +<count> 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 17:11:45 -0700 (PDT)
Date: Thu, 24 Aug 2000 16:50:33 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: re: Modularity vs. Protocol options
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <302707.3176124129@nifty-jr.west.sun.com>
Message-ID: <MailManager.967161033.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 16:43:48 -0700 (PDT)
Date: Thu, 24 Aug 2000 16:42:09 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <BE97ACF1A2EB464886E1DAF6C51BAC6E85CEAE@DF-SPOT.platinum.corp.microsoft.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Microsoft Canards
Thread-Index: AcAN83Q7OqTT2Rc9RIC9hs0EgxIsSgAGw/Zg
From: "Larry Osterman" <larryo@exchange.MICROSOFT.com>
To: "Chris Newman" <cnewman@INNOSOFT.COM>, "Mark Crispin" <MRC@cac.washington.edu>
Cc: "IMAP Extensions WG" <ietf-imapext@imc.org>
X-OriginalArrivalTime: 24 Aug 2000 21:08:31.0944 (UTC) FILETIME=[752B3C80:01C00E0F]
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.4417.0">
<TITLE>RE: Microsoft Canards</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>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 &quot;hee hee - =
wasn't Bill Gates (Mr. Bloatware himself) so stupid back then&quot; - =
and that's how urban legends like this one get started.</FONT></P>

<P><FONT SIZE=3D2>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&amp;white text-only =
display adapter.&nbsp; That was it, nothing else.&nbsp; It wasn't until =
'83 that PC's started coming with a floppy drive as a standard =
option.&nbsp; 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...</FONT></P>

<P><FONT SIZE=3D2>Anyway, as I said - it's one of my personal hot =
buttons, so.....</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Larry Osterman</FONT>

<BR><FONT SIZE=3D2>Sent from larryo-laptop.dns.microsoft.com running NT5 =
and Outlook 2000 and Exchange Platinum!&nbsp; Please notify the sender =
of any difficulties.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=3D2>&gt; -----Original Message-----</FONT>

<BR><FONT SIZE=3D2>&gt; From: Chris Newman [<A =
HREF=3D"mailto:cnewman@innosoft.com">mailto:cnewman@innosoft.com</A>]</FO=
NT>

<BR><FONT SIZE=3D2>&gt; Sent: Thursday, August 24, 2000 10:46 AM</FONT>

<BR><FONT SIZE=3D2>&gt; To: Larry Osterman; Mark Crispin</FONT>

<BR><FONT SIZE=3D2>&gt; Cc: IMAP Extensions WG</FONT>

<BR><FONT SIZE=3D2>&gt; Subject: Re: Microsoft Canards</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; Very sorry, I must have misremembered the quote =
attribution.&nbsp; </FONT>

<BR><FONT SIZE=3D2>&gt; The point I </FONT>

<BR><FONT SIZE=3D2>&gt; was trying to make is that smart and famous =
people often fail </FONT>

<BR><FONT SIZE=3D2>&gt; to predict </FONT>

<BR><FONT SIZE=3D2>&gt; the requirements for the future.&nbsp; Thus =
designing for </FONT>

<BR><FONT SIZE=3D2>&gt; scalability rather </FONT>

<BR><FONT SIZE=3D2>&gt; than for &quot;what works today&quot; is usually =
well worth the effort.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Chris</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>
</P>

</BODY>
</HTML>
------_=_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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 11:22:22 -0700 (PDT)
Date: Thu, 24 Aug 2000 10:49:51 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: Microsoft Canards
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: Larry Osterman <larryo@exchange.MICROSOFT.com>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <646118.3176102782@nifty-jr.west.sun.com>
Message-ID: <MailManager.967139391.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
CC: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Larry Osterman <larryo@exchange.MICROSOFT.com>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: Microsoft Canards
Message-ID: <646118.3176102782@nifty-jr.west.sun.com>
In-Reply-To:  <BE97ACF1A2EB464886E1DAF6C51BAC6E0157FDF1@DF-SPOT.platinum.corp.microsoft.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Thu, 24 Aug 2000 02:14:43 -0700 (PDT)
Date: Wed, 23 Aug 2000 22:15:32 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Pete Resnick <presnick@qualcomm.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <a0500100ab5ca4758f95c@champdsl-25.mcleodusa.net>
Message-ID: <MailManager.967094132.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <a0500100ab5ca4758f95c@champdsl-25.mcleodusa.net>
In-Reply-To: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
References: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
X-Mailer: Eudora [Macintosh version 5.0b10-09.00]
Date: Thu, 24 Aug 2000 00:07:27 -0500
To: Mark Crispin <MRC@cac.washington.edu>
From: Pete Resnick <presnick@qualcomm.com>
Subject: Re: SORT, THREAD, and VIEW
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <mailto:presnick@qualcomm.com>
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 <ietf-imapext@imc.org>; Wed, 23 Aug 2000 20:22:42 -0700 (PDT)
Date: Wed, 23 Aug 2000 20:16:21 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Hugh McIntyre <Hugh.McIntyre@Eng.Sun.COM>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <Roam.SIMC.2.0.6.967086818.13132.hugh@frantic>
Message-ID: <MailManager.967086981.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <Hugh.McIntyre@Eng.Sun.COM>
Reply-To: Hugh McIntyre <Hugh.McIntyre@Eng.Sun.COM>
Subject: Re: SORT, THREAD, and VIEW
To: Mark Crispin <MRC@cac.washington.edu>
Cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: "Your message with ID" <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
Message-ID: <Roam.SIMC.2.0.6.967086818.13132.hugh@frantic>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <BE97ACF1A2EB464886E1DAF6C51BAC6E0157FDF1@DF-SPOT.platinum.corp.microsoft.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: SORT, THREAD, and VIEW
Thread-Index: AcANVyD8B9f/iOs5RziFVRhVSm004QACFZog
From: "Larry Osterman" <larryo@exchange.MICROSOFT.com>
To: "Mark Crispin" <MRC@cac.washington.edu>, "Chris Newman" <cnewman@INNOSOFT.COM>
Cc: "IMAP Extensions WG" <ietf-imapext@imc.org>
X-OriginalArrivalTime: 24 Aug 2000 00:17:44.0737 (UTC) FILETIME=[B98C3910:01C00D60]
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.4417.0">
<TITLE>Microsoft Canards</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>And I gotta step in here.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; &gt; I'll also note that when Bill Gates said =
that 640K was more than any</FONT>

<BR><FONT SIZE=3D2>&gt; &gt; computer would ever need, that it was =
certainly more than I </FONT>

<BR><FONT SIZE=3D2>&gt; could imagine</FONT>

<BR><FONT SIZE=3D2>&gt; &gt; needing at the time.</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; This is irrelevant.&nbsp; Personal computers =
bigger than 640K </FONT>

<BR><FONT SIZE=3D2>&gt; existed before the</FONT>

<BR><FONT SIZE=3D2>&gt; founding of Microsoft.&nbsp; Timesharing systems =
with 10MB or more </FONT>

<BR><FONT SIZE=3D2>&gt; also existed at</FONT>

<BR><FONT SIZE=3D2>&gt; that time.</FONT>
</P>

<P><FONT SIZE=3D2>Bill Gates NEVER said any such thing.&nbsp; 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).&nbsp; 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?).</FONT></P>

<P><FONT SIZE=3D2>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.&nbsp; 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).</FONT></P>

<P><FONT SIZE=3D2>And don't forget that it was Steve Jobs who said that =
a properly designed machine would NEVER require more than 128K of =
RAM.&nbsp; 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.</FONT></P>
<BR>

<P><FONT SIZE=3D2>Larry Osterman</FONT>

<BR><FONT SIZE=3D2>Sent from larryo-laptop.dns.microsoft.com running NT5 =
and Outlook 2000 and Exchange Platinum!&nbsp; Please notify the sender =
of any difficulties.</FONT></P>

</BODY>
</HTML>
------_=_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 <ietf-imapext@imc.org>; Wed, 23 Aug 2000 16:07:22 -0700 (PDT)
Date: Wed, 23 Aug 2000 14:00:01 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <5021320.3176025571@nifty-jr.west.sun.com>
Message-ID: <MailManager.967064401.3105.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <sortpos-low> <sortpos-high> ... rest of sort command ...
> * SORT <sortpos-low> ... 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <5021320.3176025571@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966652717.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 19:38 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <sortpos-low> <sortpos-high> ... rest of sort command ...
* SORT <sortpos-low> ... 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 20:01:22 -0700 (PDT)
Date: Fri, 18 Aug 2000 19:38:37 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Lawrence Greenfield <leg+@andrew.cmu.edu>
cc: Cyrus Daboo <daboo@cyrusoft.com>, Steve Hubert <hubert@cac.washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <200008190155.e7J1sxg12190@smtp4.andrew.cmu.edu>
Message-ID: <MailManager.966652717.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: Cyrus Daboo <daboo@cyrusoft.com>, Steve Hubert <hubert@cac.washington.edu>
Cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to:  <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
References: <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Fri, 18 Aug 2000 17:39:14 -0700 (PDT)
   From: Steve Hubert <hubert@cac.washington.edu>
   cc: IMAP Extensions WG <ietf-imapext@imc.org>
   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 <ietf-imapext@imc.org>; 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 <hubert@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <3513213.3175618741@socrates.cyrusoft.com>
Message-ID: <Pine.GUL.4.30.0008181731490.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

On Fri, 18 Aug 2000, Cyrus Daboo wrote:

> --On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert
> <hubert@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Cyrus Daboo <daboo@cyrusoft.com>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 18:58 -0400 Cyrus Daboo <daboo@cyrusoft.com> 
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-low> <view-high>
* VIEW MAP <seqno> <seqno-low>:<seqno-high> <seqno> ...
  or for threaded views:
* VIEW MAP (+n <seqno> <seqno> ...) <seqno> ... (<seqno> +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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Steve Hubert <hubert@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <3513213.3175618741@socrates.cyrusoft.com>
In-Reply-To: <Pine.GUL.4.30.0008181555470.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 4:50 PM -0700 Steve Hubert 
<hubert@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Steve Hubert <hubert@washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1803970.3175607173@nifty-jr.west.sun.com>
In-Reply-To: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 15:04 -0700 Steve Hubert 
<hubert@washington.edu> 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Chris Newman <cnewman@INNOSOFT.COM>
CC: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Chris Newman wrote:
> 
> --On Friday, August 18, 2000 16:54 -0400 Ken Murchison <ken@oceana.com>
> 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 <ietf-imapext@imc.org>; 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 <hubert@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <3161821.3175612899@socrates.cyrusoft.com>
Message-ID: <Pine.GUL.4.30.0008181555470.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 12:28 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> 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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Steve Hubert <hubert@washington.edu>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <3161821.3175612899@socrates.cyrusoft.com>
In-Reply-To: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 3:04 PM -0700 Steve Hubert 
<hubert@washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 16:54 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 15:04:26 -0700
Date: Fri, 18 Aug 2000 15:04:19 -0700 (PDT)
From: Steve Hubert <hubert@washington.edu>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.COM>
Message-ID: <Pine.GUL.4.30.0008181445450.4840-100000@shiva2.cac.washington.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <hubert@washington.edu>
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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: VIEW and THREAD, was Re: SORT, THREAD, and VIEW
Message-ID: <3019107.3175610526@socrates.cyrusoft.com>
In-Reply-To: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 2:39 PM -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <number>' 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 14:41:55 -0700 (PDT)
Date: Fri, 18 Aug 2000 14:39:49 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <2898802.3175608526@socrates.cyrusoft.com>
Message-ID: <MailManager.966634789.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Ken Murchison <ken@oceana.com>, Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 4:54 PM -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Client needs VIEW map, was Re: SORT, THREAD, and VIEW
Message-ID: <2838756.3175607528@socrates.cyrusoft.com>
In-Reply-To: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 4:12 PM -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Chris Newman <cnewman@INNOSOFT.COM>
CC: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Chris Newman wrote:
> 
> --On Friday, August 18, 2000 14:04 -0400 Ken Murchison <ken@oceana.com>
> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Ken Murchison <ken@oceana.com>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Friday, August 18, 2000 14:04 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <916836.3175592423@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966547146.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:19 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>, Cyrus Daboo <daboo@cyrusoft.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <winstart> <winsize>) ...
VIEW WINDOW <winstart> <winsize>

Where <winstart> is a VIEW position.  If <winstart> is 0 and/or <winend> 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 <winstart> <winsize>)) ...
* WINDOW <winstart> <seqno> <seqno> <seqno-low>:<seqno-high> <seqno> ...
   or with thread hierarchy:
* WINDOW <winstart> <seqno> (<seqno> <seqno-low>:<seqno-high> (<seqno> +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:

* <n> EXISTS <viewsz>
      (EXPUNGE <seqno> <seqno># <seqno>#<vpos> <seqno-low>:<seqno-high> ...)
      (NEW <vpos> +n <vpos-low>:<vpos-high> -n)

There are a few subtleties.  The EXPUNGE list is evaluated in order, just 
like untagged expunge responses, and omits the #<vpos> for messages outside 
the window.  The "<seqno>#" without a <vpos> indicates the message expunged 
was lower than <winstart>.  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 <seqno>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 <viewsz> <oldpos> <newpos> <oldpos> - <oldpos> +
       <oldpos-low>:<oldpos-high> <newpos>
       + <newpos-low>:<newpos-high> - <newpos> + <newpos>

"+" means any position less that <winstart> in view, "+" means any position 
higher than <winstart>+<winsize> 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 "/<uid>" to be added to every <seqno> 
or <vpos> 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 "/<uid>" 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 <ietf-imapext@imc.org>; Fri, 18 Aug 2000 11:52:47 -0700 (PDT)
Date: Fri, 18 Aug 2000 11:12:58 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <399D7AC9.AB39D48@oceana.com>
Message-ID: <MailManager.966622378.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Cyrus Daboo <daboo@cyrusoft.com>
CC: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Cyrus Daboo wrote:
> 
> --On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman
> <cnewman@INNOSOFT.COM> wrote:
> 
> > --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin
> > <MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <874606.3175518277@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966549074.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:51 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: IETF and installed base (was Re: SORT, THREAD, and VIEW)
Message-ID: <831806.3175517565@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 16:13:05 -0700 (PDT)
Date: Thu, 17 Aug 2000 16:12:55 -0700 (Pacific Daylight Time)
From: Mark Crispin <MRC@cac.washington.edu>
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
In-Reply-To: <1330217.3175526391@socrates.cyrusoft.com>
Message-ID: <Pine.WNT.4.30.0008171545280.1316-100000@shimo-tomobiki.panda.com>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Mark Crispin <MRC@cac.washington.edu>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1330217.3175526391@socrates.cyrusoft.com>
In-Reply-To: <MailManager.966548554.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 2:42 PM -0700 Mark Crispin 
<MRC@CAC.Washington.EDU> 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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 2:41 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> wrote:

> --On Thursday, August 17, 2000 13:29 -0700 Mark Crispin
> <MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Cyrus Daboo <daboo@cyrusoft.com>
cc: Chris Newman <cnewman@INNOSOFT.COM>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1107297.3175522685@socrates.cyrusoft.com>
Message-ID: <MailManager.966548554.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <503617.3175512109@nifty-jr.west.sun.com>
Message-ID: <MailManager.966549074.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 14:43:10 -0700 (PDT)
Date: Thu, 17 Aug 2000 14:41:49 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <503617.3175512109@nifty-jr.west.sun.com>
In-Reply-To: <399C3F3A.617EA8@oceana.com> <MailManager.966544154.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 13:29 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <172336.3175506601@nifty-jr.west.sun.com>
Message-ID: <MailManager.966547146.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <daboo@cyrusoft.com>
To: Chris Newman <cnewman@INNOSOFT.COM>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 1:50 PM -0700 Chris Newman 
<cnewman@INNOSOFT.COM> 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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <317507.3175509015@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Wednesday, August 16, 2000 18:18 -0700 Mark Crispin 
<MRC@cac.washington.edu> 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 <ietf-imapext@imc.org>; 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 <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Ken Murchison <ken@oceana.com>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <399C3F3A.617EA8@oceana.com>
Message-ID: <MailManager.966544154.10896.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 17 Aug 2000 13:11:24 -0700 (PDT)
Date: Thu, 17 Aug 2000 13:10:01 -0700
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

--On Thursday, August 17, 2000 14:03 -0400 Ken Murchison <ken@oceana.com> 
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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

Lawrence Greenfield wrote:
> 
>    Date: Thu, 17 Aug 2000 14:03:42 -0400
>    From: Ken Murchison <ken@oceana.com>
>    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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <leg+@andrew.cmu.edu>
X-Mailer: BatIMail version 3.2
To: IMAP Extensions WG <ietf-imapext@imc.org>
In-reply-to: <399C28FE.1E36828A@oceana.com>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM> <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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

   Date: Thu, 17 Aug 2000 14:03:42 -0400
   From: Ken Murchison <ken@oceana.com>
   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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ken@oceana.com>
Organization: Oceana Matrix Ltd.
X-Mailer: Mozilla 4.73 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
References: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Wed, 16 Aug 2000 19:17:29 -0700 (PDT)
Date: Wed, 16 Aug 2000 18:18:24 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <2252934.3175438099@nifty-jr.west.sun.com>
Message-ID: <MailManager.966475104.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <2252934.3175438099@nifty-jr.west.sun.com>
In-Reply-To: <MailManager.966455687.4273.mrc@Ikkoku-Kan.Panda.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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Wed, 16 Aug 2000 14:34:09 -0700 (PDT)
Date: Wed, 16 Aug 2000 12:54:47 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: SORT, THREAD, and VIEW
To: Chris Newman <cnewman@INNOSOFT.COM>
cc: Pete Resnick <presnick@qualcomm.com>, IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1021299.3175417622@nifty-jr.west.sun.com>
Message-ID: <MailManager.966455687.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <cnewman@INNOSOFT.COM>
To: Pete Resnick <presnick@qualcomm.com>, Mark Crispin <MRC@cac.washington.edu>
cc: IMAP Extensions WG <ietf-imapext@imc.org>
Subject: Re: SORT, THREAD, and VIEW
Message-ID: <1021299.3175417622@nifty-jr.west.sun.com>
In-Reply-To: <a05000a00b5afae4b7c64@champdsl-25.mcleodusa.net>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; Fri, 11 Aug 2000 10:05:52 -0700 (PDT)
Date: Fri, 11 Aug 2000 10:03:52 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
To: Paul Overell <paulo@turnpike.com>
cc: ietf-imapext@imc.org
In-Reply-To: <z5Dd4dBM4Cl5QAJR@turnpike.com>
Message-ID: <MailManager.966013432.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <z5Dd4dBM4Cl5QAJR@turnpike.com>
Date: Fri, 11 Aug 2000 17:47:08 +0100
To: ietf-imapext@imc.org
From: Paul Overell <listsub@pillar.turnpike.com>
Reply-To: Paul Overell <paulo@turnpike.com>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
References: <20000808102623.A32340@speed.doit.wisc.edu> <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
In-Reply-To: <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
X-Mailer: Turnpike Integrated Version 5.01 M <U2yaxlNz9mbtXQDcM+J3SutElj>
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

In article <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>, Mark
Crispin <MRC@cac.washington.edu> 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 <x@y>, and C is message 3 then
the server response would be

   S: * THREAD (1 "<x@y>" 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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

<HTML><BODY BGCOLOR="#408080"></P><P ALIGN=CENTER><FONT  SIZE=4 PTSIZE=11><B>93% WHO RESPOND TO MY AD DON'T MAKE THE CUT!<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>(Only highly motivated people should call)<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>I'm dead serious! Now let me tell you why...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>Most people don't have <U>drive</U>! They sit around waiting for something to happen.<BR>
They see that other people have nice homes, new cars, and MONEY, but why can't they?<BR>
They basically feel sorry for themselves, and I can't help these people!<BR>
</FONT><FONT  SIZE=3 PTSIZE=9><BR>
</FONT><FONT  SIZE=3 PTSIZE=10>Another reason people are not qualified...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>They are skeptical. BUT, the truth is, they are skeptical of themselves!<BR>
They don't have the <U>courage</U> to break their routine.<BR>
They are comfortable with their set hours, their set pay, and their set future.<BR>
I was not comfortable with someone controlling my future,<BR>
and I'm not comfortable working with people who are!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>STOP</FONT><FONT  SIZE=4 PTSIZE=12><BR>
</FONT><FONT  SIZE=3 PTSIZE=10>If you are anything like the above, we won't be able to work together!<BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>WHAT DO THE 7% WHO DO MAKE THE CUT DISCOVER?!<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>People I select through an "interview like" process are forever changed!<BR>
They are opened to a world around them that they didn't know existed.<BR>
In fact, it's a world that has existed <U>around</U> them their whole lives,<BR>
but was purposely hidden from them!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>How would you like to...<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>- Drastically <U>reduce</U> personal, business and capital gains taxes?<BR>
- Protect <U>all</U> assets from any form of seizure, liens, or judgments?<BR>
- Create a <U>six figure</U> income every 4 months?<BR>
<BR>
 </FONT><FONT  SIZE=3 PTSIZE=10>How about...<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>Restoring and preserving complete personal and financial<U> privacy</U>?<BR>
Amassing personal <U>wealth</U>, multiplying it and protecting it?<BR>
Realizing a 3 to 6 times <U>greater return</U> on your money?<BR>
<U>Legally</U> making yourself and your assets completely judgment-proof,<BR>
lien-proof, divorce-proof, attorney-proof, IRS-proof?<BR>
I could go on...</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>TAKE A SERIOUS LOOK AT YOUR LIFE<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>Do you think you are paid what you are worth?<BR>
Will you be set to retire in the next few years?<BR>
Do you control the course of your day? ...your life?<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>The fact is we have many people in our enterprise that earn over 50K per month<BR>
from the privacy of their own homes, and are retiring in 2 to 3 years (wealthy)<BR>
and have total freedom - both personal and financial!<BR>
<BR>
Many have been <U>conditioned</U> to believe it must be illegal, immoral or unethical<BR>
to ever earn any real profits from our efforts.<BR>
<BR>
The <U>sad truth</U> is, it's been designed that way by the ultra-rich<BR>
and ultra-powerful since before any of us were born!</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=10>Who am I?<BR>
<BR>
</FONT><FONT  SIZE=2 PTSIZE=8>I'm a BIG thinker, a BIG dreamer, and I believe that I deserve the best that life has to offer.<BR>
I answered an ad much like the one you are reading now,<BR>
and was eager to hear what it was about.<BR>
<BR>
I knew that I couldn't invest only a few bucks and spend an hour or two<BR>
per week to achieve the results I was looking for.  I found the right information<BR>
and now I control my own destiny!<BR>
<BR>
If you are interested in radically changing your thoughts and your financial future,<BR>
I invite you to call TOLL FREE:</FONT><FONT  SIZE=3 PTSIZE=9><BR>
<BR>
</FONT><FONT  SIZE=4 PTSIZE=11>1 800 707 4817<BR>
<BR>
</FONT><FONT  SIZE=3 PTSIZE=9>My name is Krystina, and I look forward to working with some of you!<BR>
<BR>
* REMEMBER *<BR>
<BR>
I can't do it for you, but I can show you exactly how I do it.<BR>
It's as simple as that!</B></P></HTML>



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 <ietf-imapext@imc.org>; Tue, 8 Aug 2000 09:42:22 -0700 (PDT)
Date: Tue, 8 Aug 2000 09:44:34 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: Re: I-D ACTION:draft-ietf-imapext-thread-00.txt
To: Jon Miner <miner@doit.wisc.edu>
cc: ietf-imapext@imc.org
In-Reply-To: <20000808102623.A32340@speed.doit.wisc.edu>
Message-ID: <MailManager.965753074.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@IMC.ORG>; 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 <miner@doit.wisc.edu>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <magg@NOROFF.NO>; 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 <all-ietf@loki.ietf.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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: <a05000a00b5afae4b7c64@champdsl-25.mcleodusa.net>
In-Reply-To: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
References: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
X-Mailer: Eudora [Macintosh version 5.0b10-09.00]
Date: Thu, 3 Aug 2000 18:36:13 -0500
To: Mark Crispin <MRC@cac.washington.edu>
From: Pete Resnick <presnick@qualcomm.com>
Subject: Re: SORT, THREAD, and VIEW
Cc: IMAP Extensions WG <ietf-imapext@imc.org>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <mailto:presnick@qualcomm.com>
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 <ietf-imapext@IMC.ORG>; Thu, 3 Aug 2000 15:40:10 -0700 (PDT)
Date: Thu, 3 Aug 2000 15:24:47 -0700 (PDT)
From: Mark Crispin <MRC@cac.washington.edu>
Subject: re: Minutes from IMAPEXT WG
To: IMAP Extensions WG <ietf-imapext@imc.org>
In-Reply-To: <1005448.3174280198@hobo150.eng.sun.com>
Message-ID: <MailManager.965341487.4273.mrc@Ikkoku-Kan.Panda.COM>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; 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 <ietf-imapext@imc.org>; Thu, 3 Aug 2000 05:30:46 -0700 (PDT)
Date: Thu, 03 Aug 2000 08:29:58 -0400
From: Chris Newman <cnewman@INNOSOFT.COM>
To: IMAP Extensions WG <ietf-imapext@imc.org>
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: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=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 <identifier, rights> 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.


