On Tue, 2005-03-29 at 13:43 -0800, gopalakrishnan kamalanathan wrote: > I want to know on how the synchronization between two email clients in done > in DBMail.
That's not DBMail-specific. That's IMAP-specific. They don't synchronize with eachother- they synchronize with a [remote] message store. > Is the synchronization done in the database? Or does the processes handling > the EMail client talk to each other for synchronization? I think you misunderstand how IMAP works. IMAP clients share a message store. They might use caching to speed up lookups, but they always ask a single server [unit] about the messages. IMAP clients are not synchronized unless they run without a cache and are presently performing no operations [and no new mail has come in :)] But those things are on the order of seconds. People don't worry about mail being synchronized on such small orders. IMAP servers [generally: e.g. Cyrus MURDER] don't synchronize with other IMAP servers. So IMAP clients and IMAP servers have nothing to do with synchronization. Lookout!/Express calls what they do with the IMAP server "synchronization", but it's really not IMAP-specific, as it's synchronizing a CACHE and not really any different than a web browser doing an If-Modified-Since header. It's helpful to think of IMAP as a really, ungodly, horrible, nasty, [ahem], remote filesystem. Like NFS, or HTTP+DAV. Only, _unlike_ NFS or HTTP+DAV, it doesn't serve _files_ (although it could), it serves mime message parts or mime messages. It also allows a certain level of annotation to occur (flags/keywords). Now. IMAP was adopted by a large number of people who are masochists and didn't understand the level of involvement in keeping a message-store and a client's narrow-view of it in-sync. Thus along came IMAP4, and IMAP4rev1 because Mark Crispin didn't want to admin IMAP4 was a bad idea too. rsyncing a maildir or MH folder, and unison-merging a list of annotations probably would have made much more sense had anyone decided to have sense about it. They didn't, and so we don't. That said, DBMail actually understands these costs, and realizes IMAP is here to stay. It alleviates these costs by being both ends- by being the concept of a message-store, and the method by which a client keeps it in sync (IMAP). Like CYRUS, now that I mention it, in many respects. But unlike CYRUS, I think the DBMail people understand that making a robust message-store is hard, and best left to people who actually do that sort of thing [MySQL, PostgreSQL, etc]. As a result, under finely cooked circumstances (reality), DBMail will kick the snot out of Cyrus or UW-IMAP in some wonderful scenarios that occur REALLY frequently for web-based and small-device IMAP clients [like my PALM]. But IMAP is here, and while my rsync/unison mailbox will likely never catch on, DBMail does well enough. > If there is a some other client which accesses the message store other than > IMAP client? then how does the synchronization works? The problem remains the same, with the exception of Postgresql and a direct database connection- at which point, Pg's native concurrency systems take over. Generally, one client blocks. For the most part, this synchronization takes place on the order of milliseconds, so you need not be bothered by this. -- Internet Connection High Quality Web Hosting http://www.internetconnection.net/