From: Christian Stroetmann Subject: Re: Atomic non-durable file write API Date: Mon, 27 Dec 2010 16:30:14 +0100 Message-ID: <4D18B106.4010308@ontolinux.com> References: <20101224095105.GG12763@thunk.org> <20101225031529.GA2595@thunk.org> <20101226221016.GF2595@thunk.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: linux-fsdevel , linux-ext4@vger.kernel.org, Ted Ts'o , Nick Piggin To: Olaf van der Spek Return-path: Received: from moutng.kundenserver.de ([212.227.126.171]:60864 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754056Ab0L0P3q (ORCPT ); Mon, 27 Dec 2010 10:29:46 -0500 In-Reply-To: Sender: linux-ext4-owner@vger.kernel.org List-ID: On the 27.12.2010 11:21, Olaf van der Spek wrote: > On Sun, Dec 26, 2010 at 11:10 PM, Ted Ts'o wrote: >> On Sun, Dec 26, 2010 at 07:51:23PM +0100, Olaf van der Spek wrote: >>> f = open(..., O_ATOMIC, O_CREAT, O_TRUNC); >> Great, let's rename O_ATOMIC to O_PONIES. :-) > If that makes you happy. > >>> abort/rollback(...); // optional >> As I said earlier, "file systems are not databases", and "databases >> are not file systems". Oracle tried to foist their database as a file >> system during the dot.com boom, and everyone laughed at them; the >> performance was a nightmare. If Oracle wasn't able to make a >> transaction engine that supports transactions and rollbacks >> performant, you really expect that you'll be able to do it? > Like I've said dozens of times, this is not about full DB functionality. > Why do you keep making false analogies? The analogy is not so wrong. The concepts atomicity and abort/rollback your are talking about are also concepts of the field of database management systems (DBMSs). And once you have established the Atomicity, which is the A of the principle ACID of DBMSs, you have the basis for establishing the rest, the CID. And you even went further into this DBMS direction by letting down the requirement of non-durability. >>> Providing transaction semantics for multiple files is a far broader >>> proposal and not necessary for implement this proposal. >> But providing magic transaction semantics for a single file in the >> rename is not at all clearly useful. You need to justify all of this >> hard effort, and performance loss. (Well, or if you're so smart you >> can implement your own file system that does all of this work, and we >> can benchmark it against a file system that doesn't do all of this >> work....) > Still waiting on any hint for why that performance loss would happen. From my point of view, the loss of performance depends on what is benchmarked in which way. > Olaf > -- Christian Stroetmann