From: Olaf van der Spek Subject: Re: Atomic non-durable file write API Date: Sun, 26 Dec 2010 19:26:23 +0100 Message-ID: References: <1292710543.17128.14.camel@nayuki> <20101224085126.2a7ff187@notabene.brown> <20101223222206.GD12763@thunk.org> <4D13E98D.8070105@ontolinux.com> <20101224004825.GF12763@thunk.org> <4D13F09D.4010703@ontolinux.com> <20101224095105.GG12763@thunk.org> <20101225031529.GA2595@thunk.org> <4D17656B.7010603@panasas.com> <4D176CF6.7010208@panasas.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Nick Piggin , "Ted Ts'o" , linux-fsdevel , linux-ext4@vger.kernel.org To: Boaz Harrosh Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:63661 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752393Ab0LZS0Z (ORCPT ); Sun, 26 Dec 2010 13:26:25 -0500 In-Reply-To: <4D176CF6.7010208@panasas.com> Sender: linux-ext4-owner@vger.kernel.org List-ID: On Sun, Dec 26, 2010 at 5:27 PM, Boaz Harrosh wrote: >> Are you proposing to turn every single file into a symlink? > > Sure, a symlink and a "versioned" file for every object. Something similar > to the silly rename of nfs. > > Even if you have 1000 files that need the same atomicity treatment > that's not that bad. You should be able to devise a namespace policy > that makes all this nit and tidy. Nearly all files on the system need the atomicity treatment. >> How would that solve the meta-data issue? >> > > That's what I asked. Do you want to preserve the original's file > metat-data, or the meta-data of the owner of the new content? > In the first case you'll need a metat-data copy like tar is > using. The original meta-data, of course. Including file owner. AFAIK not doable without root access. >> Olaf > > The point is to fsync/fdatasync on a background thread and continue > from there where the application is free to go on to the next step. Not if it's the last thing a process does and another processes is waiting on it. > As if you had a notification when the commit was done (in the background). > So you make it an async pipeline model. The version-naming schem is so the > pipeline can get arbitrary big. > > Boaz >