From: braver@pobox.com
Date: 09/15/99-12:07:25 PM Z
From: braver@pobox.com Date: Wed, 15 Sep 1999 13:07:25 -0400 Message-Id: <199909151707.NAA04585@roll.setup.org> Subject: Re: fsync() fails under NFS, right? The tone of the message by "Theodore Y. Ts'o" implies a strange, unjustified superiority of some Linux developers, which probably points to real inferiority complexes of the authors or carelessness of speech, either of which wouldn't encourage my response. However, since some inappropriate things have been said to the group, and an important technical culprit has been let out of the box by Gen. Ts'o, I'd like to analyze further. Please pardon my follow-up, but that message can not be put away for the culprit, philosophical implication described below. Our NEC group relies on Linux for development of serious distributed systems, and one point of the respected self-proclaimed Linuxoid's posting is very important to notice. It is aggressive kernel optimization. One of the things we noticed and investigated were TCP protocol problems under Linux. It seemed that the kernel does buffer stuff on behalf of processes in a way not fully faithful to the TCP specs. A process would get an OK status after sending messages while they are actually in the kernel buffer and the destination process could be dead. The only way around it was to get the recipient send an ack back. Clean TCP spec would allow teh sender to receive the status and that would be enough. We discussed the problem with Alan Cox at the time. It may or may not be corrected by now. But the fact how subtle it was and that it was indeed introduced into Linux is telling. Notice a similarity in spirit with transactional semantics -- the ack must come only after something happens for sure, but Linux didn't carefully ensure it did indeed happen. Since Linux aggressively positions itself as the server platform, Linux folks smell blood in the water and move ahead with kernel optimizations of all sorts. With some waters, some babies also get thrown out. The point of my message is that it is important to get reality-level code, but not at the price of cutting corners in such ibscure ways that it takes seven and a half gurus to understand what's going on. If Linux wants to run ahead of the old dogs, which is happenning, it should pay more attention to protocol quality, scientific discussion, and be subject to appropriate criticism. OK? -- Cheers, Alexy V. Khrabrov -- www.suffix.com -- braver@pobox.com
This archive was generated by hypermail 2.1.2 : 03/04/05-01:47:35 AM Z CST