[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CAP 10: 10.1. CAP Commands (CMD) (ABORT/CONTINUE)




Larry wrote on 01/30/2003 03:56:37 PM:

First Id like to say thanks for your POP3/IMAP/LDAP reply last week.  It took a day to sink in but I finally got it and partly answered my own question in a different thread.

> It simplifies implementations. (You do want people to implement this,
> right?) What happens if you submit a bounded command (3 seconds,
> say), wait 3 seconds, and the server doesn't come back? What if it
> doesn't come back in 30 seconds?

This is something the draft needs to cover (plus its not related to unbounded commands).  Thanks for raising it.

> What if you submit an unbounded command, wait 1 second, submit a
> CANCEL, and the server still hasn't replied in 30 seconds?

This assumes that we have some CANCEL command.  Currently we do not nor has one been actually be proposed for inclusion yet.

ANY command could fail to get a response so whatever solution we devise for your 1st question needs to cover them all.

> What if the network is down or tremendously slow?

Or the CS is under very heavy load... Or the command triggered some kind of housecleaning or fixup action on a particular TARGET...

I don't think we've considered the case of a CS actually being clustered and thus load balanced, etc. but that too plays into this in the ever growing Enterprise and hosted environments.

> [...]
>    Still, why invent more stuff if unbounded commands do not make sense given
>    our current model?...  Or if we are going to keep unbounded commands then
>    we really should expreslly codify the way that a CUA terminates them so we
>    have consistant behaviour among all implementations.
>
> How am I, as a client, suppose to know how long something is going to
> take the server? Maybe the server is really loaded. Maybe it affects a
> lot of data on the server.

The intent of the latency value is for the CUA to express to the CS "This is how long Im willing to wait to get back my results.  Check back with me then if you are not done and see if I want to CONTINUE or not."  If the CS is heavily loaded then of course its possible that it does not respond exactly at the specified time with a CONTINUE command.  

Also the CUA must factor in that the clock for latency does NOT start when the command is put on the wire to the CS (at least in my mind) so using a local timer to say "Hey, that stupid CS didnt complete the command in 5 seconds and I dont see a CONTINUE command that I would therefore expect; something must be wrong!" is not a good design.  Its also why I objected to the current draft text that mandates "If a CS can both start sending the reply to a command and guarantee that all of the results can be sent from a command..." since this kind of requirement is impossible to accurately do.

> The last thing I want, as a server, is for clients to try an operation
> for 5 seconds, then try it for 10, then 20, etc., until it's done.

Thats exactly what LATENCY is for; so the CUA can "give the server a little more time to complete the command".

Do you think that we need to have some kind of minimum latency values that CS's will accept so that they can tell CUAs "I dont care if you want results within 5 seconds, Im only going to guarantee a minimum response time of 30 seconds"?  Or perhaps you are thinking that bounded latency is too much to do and that it should be optional entirely (ie: All CAP commands follow the existing POP3/IMAP/LDAP/etc model of 'Its done when its done and if you dont want to wait then leave.")??

Bruce
===========================================================================
Bruce Kahn                                INet: Bruce_Kahn@xxxxxxxxxxxxxxxx
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...