<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ext4 vs fsync, my take</title>
	<atom:link href="http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/</link>
	<description>Cool links and commentary</description>
	<lastBuildDate>Wed, 21 Oct 2009 16:29:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Topics about Safes &#187; ext4 vs fsync, my take</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-553</link>
		<dc:creator>Topics about Safes &#187; ext4 vs fsync, my take</dc:creator>
		<pubDate>Mon, 30 Mar 2009 05:42:59 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-553</guid>
		<description>[...] alexl added an interesting post on ext4 vs fsync, my takeHere&#8217;s a small excerptext3: In the default data=ordered mode it is safe, because data is written before metadata. If you crash before the data is written (5 seconds by default) you get the old data. With data=writeback mode it is unsafe. &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] alexl added an interesting post on ext4 vs fsync, my takeHere&#8217;s a small excerptext3: In the default data=ordered mode it is safe, because data is written before metadata. If you crash before the data is written (5 seconds by default) you get the old data. With data=writeback mode it is unsafe. &#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Is ext4 unsafe? &#124; Tribulaciones.org</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-552</link>
		<dc:creator>Is ext4 unsafe? &#124; Tribulaciones.org</dc:creator>
		<pubDate>Thu, 19 Mar 2009 20:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-552</guid>
		<description>[...] problem&#8221; and &#8220;Don’t fear the fsync!&#8221; and also Alessander Larsson&#8217;s one &#8220;ext4 vs fsync, my take&#8221; as well as comment in all of [...]</description>
		<content:encoded><![CDATA[<p>[...] problem&#8221; and &#8220;Don’t fear the fsync!&#8221; and also Alessander Larsson&#8217;s one &#8220;ext4 vs fsync, my take&#8221; as well as comment in all of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boycott Novell &#187; IRC: #boycottnovell @ FreeNode: March 18th, 2009 - Part 3</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-551</link>
		<dc:creator>Boycott Novell &#187; IRC: #boycottnovell @ FreeNode: March 18th, 2009 - Part 3</dc:creator>
		<pubDate>Thu, 19 Mar 2009 08:59:06 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-551</guid>
		<description>[...] Who is Alexander Larsson? http://blogs.gnome.org/alex&#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] Who is Alexander Larsson? <a href="http://blogs.gnome.org/alex&#8230" rel="nofollow">http://blogs.gnome.org/alex&#8230</a>; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Devi</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-549</link>
		<dc:creator>Robert Devi</dc:creator>
		<pubDate>Tue, 17 Mar 2009 20:01:29 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-549</guid>
		<description>While the proposed solution will fix the problem nonportably, it is a cop-out.

POSIX doesn&#039;t make guarantees on a lot of things. Neither does ISO or ANSI. But all trust implementations &quot;to do the right thing&quot; given the environments of use. For instance, in C, when you call malloc() it&#039;s undefined where the memory comes from or even if all requested memory is available right now. But that doesn&#039;t mean that you can do a malloc() can allocate memory in video memory (messing up the screen) or read-only memory. While such behaviour is technically legal according to ISO/ANSI, it&#039;s not reasonable behaviour.

If ext4 wants to be taken seriously as a desktop file system, it must have reasonable behaviour in cases common to desktops, and that includes gracefully surviving failures such as crashes or someone tripping over the power plug.

Thankfully, ext4 seems to be fixed.</description>
		<content:encoded><![CDATA[<p>While the proposed solution will fix the problem nonportably, it is a cop-out.</p>
<p>POSIX doesn&#8217;t make guarantees on a lot of things. Neither does ISO or ANSI. But all trust implementations &#8220;to do the right thing&#8221; given the environments of use. For instance, in C, when you call malloc() it&#8217;s undefined where the memory comes from or even if all requested memory is available right now. But that doesn&#8217;t mean that you can do a malloc() can allocate memory in video memory (messing up the screen) or read-only memory. While such behaviour is technically legal according to ISO/ANSI, it&#8217;s not reasonable behaviour.</p>
<p>If ext4 wants to be taken seriously as a desktop file system, it must have reasonable behaviour in cases common to desktops, and that includes gracefully surviving failures such as crashes or someone tripping over the power plug.</p>
<p>Thankfully, ext4 seems to be fixed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bojan</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-548</link>
		<dc:creator>Bojan</dc:creator>
		<pubDate>Tue, 17 Mar 2009 14:40:09 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-548</guid>
		<description>&gt; current API

I mean rename(2) here, of course.</description>
		<content:encoded><![CDATA[<p>&gt; current API</p>
<p>I mean rename(2) here, of course.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bojan</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-547</link>
		<dc:creator>Bojan</dc:creator>
		<pubDate>Tue, 17 Mar 2009 14:27:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-547</guid>
		<description>Here are a few facts that I think everyone taking part in this discussion should be aware of:

1. The rename(2) call operates on directory pathnames only. This is explained by Ted nicely here: http://lwn.net/Articles/323745/. The fact that kernel can present a consistent picture to processes (in terms of both the directories and files) is related to the fact that, of course, kernel keeps track (internally) of where directory entries point to, which has nothing whatsoever to do with persisting directories or files to disk.

2. It is clear from the documentation of fsync() that separate calls to commit directories and files _can_ (and should) be made. This clearly spells out that these are two different entities, which users can commit to disk at will.

3. In the absence of fsync(), the order of commits of both files and directories is generally not specified, which means that kernel is free to do as it pleases.

Now, any talk of barriers, transactions and what not is just wishful thinking in the current API. There is simply no guarantees to it and programming to such guarantees is completely non portable.

Claiming that a particular file system not implementing such guarantees is broken is false. We all got bitten by this, unfortunately, and the problem is in the application code.

The problem of configuration files being zeroed on a crash (which should be a rare event) can be solved by using backup files, even in the absence of constant fsync(). An example (probably not a very good one) is here: http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/#comment-2239.</description>
		<content:encoded><![CDATA[<p>Here are a few facts that I think everyone taking part in this discussion should be aware of:</p>
<p>1. The rename(2) call operates on directory pathnames only. This is explained by Ted nicely here: <a href="http://lwn.net/Articles/323745/" rel="nofollow">http://lwn.net/Articles/323745/</a>. The fact that kernel can present a consistent picture to processes (in terms of both the directories and files) is related to the fact that, of course, kernel keeps track (internally) of where directory entries point to, which has nothing whatsoever to do with persisting directories or files to disk.</p>
<p>2. It is clear from the documentation of fsync() that separate calls to commit directories and files _can_ (and should) be made. This clearly spells out that these are two different entities, which users can commit to disk at will.</p>
<p>3. In the absence of fsync(), the order of commits of both files and directories is generally not specified, which means that kernel is free to do as it pleases.</p>
<p>Now, any talk of barriers, transactions and what not is just wishful thinking in the current API. There is simply no guarantees to it and programming to such guarantees is completely non portable.</p>
<p>Claiming that a particular file system not implementing such guarantees is broken is false. We all got bitten by this, unfortunately, and the problem is in the application code.</p>
<p>The problem of configuration files being zeroed on a crash (which should be a rare event) can be solved by using backup files, even in the absence of constant fsync(). An example (probably not a very good one) is here: <a href="http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/#comment-2239." rel="nofollow">http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/#comment-2239.</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peng&#8217;s links for Monday, 16 March &#171; I&#8217;m Just an Avatar</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-546</link>
		<dc:creator>Peng&#8217;s links for Monday, 16 March &#171; I&#8217;m Just an Avatar</dc:creator>
		<pubDate>Tue, 17 Mar 2009 13:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-546</guid>
		<description>[...] Alexander Larsson: ext4 vs fsync, my take [...]</description>
		<content:encoded><![CDATA[<p>[...] Alexander Larsson: ext4 vs fsync, my take [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: EXT4? Scherzavamo &#8230; &#171; Tecnologia e non solo</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-545</link>
		<dc:creator>EXT4? Scherzavamo &#8230; &#171; Tecnologia e non solo</dc:creator>
		<pubDate>Tue, 17 Mar 2009 13:00:54 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-545</guid>
		<description>[...] blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/ [...]</description>
		<content:encoded><![CDATA[<p>[...] blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/ [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nikesh</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-544</link>
		<dc:creator>Nikesh</dc:creator>
		<pubDate>Tue, 17 Mar 2009 10:35:08 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-544</guid>
		<description>I am using ext4 on opensuse 11.1 for sometime and it&#039;s looking stable maybe I am only using it on my desktop, not sure how it will work when put under the server load.

If anyone like to run ext4 on opensuse - http://linuxpoison.blogspot.com/2009/01/ext4-support-on-opensuse-111.html</description>
		<content:encoded><![CDATA[<p>I am using ext4 on opensuse 11.1 for sometime and it&#8217;s looking stable maybe I am only using it on my desktop, not sure how it will work when put under the server load.</p>
<p>If anyone like to run ext4 on opensuse &#8211; <a href="http://linuxpoison.blogspot.com/2009/01/ext4-support-on-opensuse-111.html" rel="nofollow">http://linuxpoison.blogspot.com/2009/01/ext4-support-on-opensuse-111.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alexl</title>
		<link>http://blogs.gnome.org/alexl/2009/03/16/ext4-vs-fsync-my-take/comment-page-1/#comment-543</link>
		<dc:creator>alexl</dc:creator>
		<pubDate>Tue, 17 Mar 2009 08:23:05 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/alexl/?p=92#comment-543</guid>
		<description>Luke: 

Such O_TRUNC_ATOMIC behaviour is very unlike normal posix/unix behaviour. So its probably both hard and not a good idea.

About ext4 dependency tracking, thats exactly what the patches in 2.6.30 does.</description>
		<content:encoded><![CDATA[<p>Luke: </p>
<p>Such O_TRUNC_ATOMIC behaviour is very unlike normal posix/unix behaviour. So its probably both hard and not a good idea.</p>
<p>About ext4 dependency tracking, thats exactly what the patches in 2.6.30 does.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
