On Tue, 7 Nov 2006, David Severance wrote:
At the risk of irritating you further it doesn't help your argument by ignoring the fact that there is a way to make it work successfully.

There is no "fact" to ignore.  NFS is not a suitable back end for IMAP.

The maximum functionality that you can hope to achieve is single-session access to a limited degree with traditional UNIX mailbox format accessed over an NFS back end. Most IMAP clients today are not single-session access.

There ARE cases where even single-session access will fail. The most common outcome in those cases are lost messages; in other words, a message is delivered but then vanishes. There are other cases where the mailbox gets trashed, but it isn't always noticed (see below).

Again I don't refuse to believe you when you talk about NFS, I'm just not doing the things that would get me in trouble.

Actually, you probably *are* doing those things, but don't realize it.

Non-rigorous empirical observation is a very poor method. A lot of bad things can go on without being noticed or being put down to other causes. Dependency upon user complaints is particularly unreliable.

One property of the traditional UNIX format is that it is very difficult to corrupt the file in such a way that it will not open. Nothing short of damage to the very first "From " line will do that.

Thus, it is possible for a traditional UNIX format mailbox be thoroughly trashed, and still be openable. There'll be some trashed messages, and generally some message duplication. But, since the user can open the mailbox and most messages are spam anyway, many users won't bother complaining.

Similarly, in this day and age of spam, it is easy for messages to go missing and unremarked. User A sends a message to User B, and User B never sees it. Must be the spam filters or something.

The only reason I got involved in this thread was to see if I understood the pluses and minuses of, as I see it, the two approaches to implementation. I would really like to hear from you in particular on this. You see, I recognize we have reached the limits of what I can do with NFS.

UW went through all of this:
 . My saying "don't use NFS"
 . The Powers That Be insisting upon NFS.
 . My being accused of "ignoring the fact that NFS can be made to work"
    (because The Experts At IBM said it would and they were giving us a
    great deal).
 . "We're not doing the things that would get us in trouble."
 . A growing realization that the system was slow and unreliable.
 . IBM giving us additional free hardware to make it faster and more
    reliable.
 . That additional hardware doing no good at all.

Eventually, UW abandoned NFS for our IMAP servers. This happened over a decade ago, and we have never looked back. We stayed with SVR4 (AIX) for considerably longer, but that mistake has been remedied as well.

We still use NFS for file service. NFS is an excellent file service. It is just wretchedly bad as an IMAP back end (or for that matter as a store for any distributed multi-access read/write database).

I'd like to offer my users more but it seems like in order to do that I have to accept a single point of failure model. I had thought we were quite past the point in time where that was considered an acceptable model in a large enterprise type environment even if that is a University.

But NFS *is* a single point of failure!

You may have a dozen IMAP servers, but they are all go to a single NFS server. Your argument basically presumes that IMAP servers are more likely to fail than NFS servers. That's a fallacy.

Server reliability is very often a function of how much the server is being asked to do. A shell-access timesharing system that has FTP, SMTP, IMAP, etc. servers is much less reliable than a box that has only IMAP and some mechanism (LMTP or limited SMTP) to deliver mail into it.

Your NFS server may have all sorts of redundancy, but a single physical action can take it down.

It all ends up as file data in one place. You can have that file data mirrored in various ways, but that doesn't change the basic point. And when you have an NFS monolith, then everything is on the monolith.

Take down the monolith, and everything is lost.

Independent, small, dedicated, inexpensive boxes create a more reliable overall facility that a cluster centered around a monolith.

Unlike the NFS monolith, we have no single point of failure that loses the entire IMAP service. The worst case scenario is that a small percentage of the user community is temporarily (a matter of minutes) offline while we deploy a replacement.

We don't even have all our IMAP servers in the same building; a Ryder truck packed with fertilizer and diesel fuel won't wipe out our services. And, of course, we have disaster recovery planning; not just for the Ryder truck, but for more likely things (e.g., earthquake) destroying one of our data centers, etc.

This point bears repeating: no single event can take down our entire IMAP service.

Does everyone just accept this single point of failure issue without concern? I'm finding it a hard one to sallow that with 40K users to support.

UW has more than twice as many users. A single monolithic NFS server is a single point of failure that we do not accept.

UW imapd goes through heroic efforts to keep traditional UNIX format files from being corrupted when accessed via NFS. Among other things, those efforts slow down the handling of traditional UNIX format files for everybody, even those who do not use NFS.
Thank you for making it work if even in a narrow subset. Perhaps there should be a compile time option to put in / take out NFS code that slows things down. But that may be more work than it's worth since for performance you should really use a different mailbox format.

Most of the file management algorithms need to be complete different. I know, because I had to rewrite them several times to deal with NFS buffer cache issues.

But that's only for traditional UNIX mailbox format. The other formats, notably mbx and mix, don't stand a chance of working over NFS.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to