Re: [Imap-protocol] Re: Suspend/Restore feature proposal

Bron Gondwana <[email protected]>
Newsgroups gmane.mail.imap.general
Message-ID <1354096326.12905.140661159138037.73D46EAB@webmail.messagingengine.com>
On Wed, Nov 28, 2012, at 12:04 AM, L Walsh wrote:
> Michael M Slusarz wrote:
> >
> > Background: I am a disconnected client author (webmail).... I was 
> > depressed/alarmed at the amount of state re-creation ...need.. 
> > NAMESPACE, CAPABILITY, (since there was no guarantee that we are 
> > connecting to the same backend IMAP server, it was/is not possible to 
> > cache these values on the client side), ENABLE QRESYNC, and LANGUAGE 
> > call on every user action.
> ---
> Just ignore me if I'm too clueless for this to be of any help, but if I was
> doing what you are doing, I'd cache the client TCP connections to the IMAP
> server until I timed their session-out from my webserver.
> 
> I.e. would set cookie upon connection to their imap server that contains
> a 'handle' that would indicate something in my 'IMAP-TCP connection cache',
> and route their requests accordingly.
> 
> Not only are starting TCP connections "expensive", but you have an added 
> expense
> of IMAP state... if HTTP(S), believes in using PIPELINING to enable lower
> server loads and faster response time, why not a webmail->imap gateway?

Indeed this.  Our webmail runs in mod_perl2, so it's persistent, but there's
no guarantee that you'll get the same process on the next web hit.  We have
a thing called 'imappool', which is evil, but works very well.  Every
connection has associated state.  It actually passes the unix descriptor
backwards and forwards between processes.  It's super-fast.

We actually send a command 'XDUMMY' to the backend now, which just gets a
BAD response - but at least it confirms that the connection is still there
so that if a backend goes away we get all the same sort of failure rather
than random failures.

The plan is to replace XDUMMY with something that actually gets a new
SESSIONID from the backend.  We create a new SESSIONID every login and
it gets logged along with every change.  That way we can track changes
back to their source login - but tracking them to the exact web hit would
be even nicer.

Point is - it can be done.  I see that someone who wants to build a PHP
app which can be uploaded to j-random-webhost without having control over
the host configuration makes things hard though... no good answer there
except that IMAP isn't a great match for that configuration.

Bron.
-- 
  Bron Gondwana
  [email protected]

_______________________________________________
Imap-protocol mailing list
[email protected]
http://mailman2.u.washington.edu/mailman/listinfo/imap-protocol
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.