LWN: Comments on "Ext4 filesystem hits Android, no need to fear data loss (ars technica)" https://lwn.net/Articles/421117/ This is a special feed containing comments posted to the individual LWN article titled "Ext4 filesystem hits Android, no need to fear data loss (ars technica)". en-us Sat, 04 Oct 2025 10:49:06 +0000 Sat, 04 Oct 2025 10:49:06 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Google https://lwn.net/Articles/421805/ https://lwn.net/Articles/421805/ dw <div class="FormattedComment"> Double quoting terms that should not be "corrected" works with the Google, even though it still offers you a correction, the initial set of results aren't corrected.<br> <p> Prefixing with plus turns off correction with the Bing, which quite politely doesn't offer some obnoxious correction even after explicitly being told not to.<br> <p> As an aside, Bing's fancy augmented search results page is much less annoying than Google's, even though it still has behaviour that triggers on mouse-over.<br> </div> Thu, 06 Jan 2011 09:04:37 +0000 And yet again here we are https://lwn.net/Articles/421668/ https://lwn.net/Articles/421668/ nye <div class="FormattedComment"> <font class="QuotedText">&gt;What XFS did (and I experienced first hand) was add some uninitialized sectors to the file, and afterwards write the new content to the sectors. This behavior is apparently allowed by POSIX, and yet extremely annoying to users, who moved to other filesystems in droves.</font><br> <p> To be fair there was more wrong with XFS than that - it could also corrupt *entirely unrelated* files. Personally I stopped using it when a power cut trashed /etc/passwd (and presumably a load of other files that were less obvious) despite nothing having it open at the time.<br> </div> Wed, 05 Jan 2011 12:03:28 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421398/ https://lwn.net/Articles/421398/ butlerm <em>The necessary operation is to *prevent* writing the metadata until the data has been written.</em><br> <br> That can lead to severe performance issues, unless you implement some sort of multiversion concurrency (<em>a la</em> BSD style "soft updates") on all your metadata. There are better ways. Sat, 01 Jan 2011 19:22:01 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421396/ https://lwn.net/Articles/421396/ butlerm <em>If you really wanted to export journalling-style protection to user-space apps, I would look at allowing dependencies to be specified, either implicitly (close -> rename) or explicitly.</em><br> <br> User specified dependencies are completely unnecessary. All that is necessary is for filesystems to exercise a little bit of additional effort to preserve POSIX semantics across system crashes. That means atomic renames, among other things.<br> <br> Very simple: log the rename in the journal. Keep the old inode around until the data associated with the replacement inode commits to disk. If the system crashes in the meantime, on recovery undo the rename, thereby restoring the association between the name and the old inode.<br> <br> No need to commit the new inode data implicitly or explicitly prior to writing any metadata journal entries. No need to call fsync unless you actually want synchronous behavior. No need to start writeout on the new inode immediately, either. Sat, 01 Jan 2011 18:54:47 +0000 Google https://lwn.net/Articles/421382/ https://lwn.net/Articles/421382/ tialaramex <div class="FormattedComment"> Google (and pretty much everyone) ignores + or treats it as a hint at most<br> <p> This is topical with the thread above about filesystem behaviour. Once people are using something, it's too late to decide how they should use it. Google's reality is that millions of people every second are asking Google for things like "ma DONah" and expecting to find pages about the pop singer Madonna, and for "870 + 43" expecting 913 - while its probably as much as seconds at a time between requests by (let's call them) nerds for whom Fu8E7 +frobnicate site:verytechnical.example is very precisely the exact search they wanted to perform.<br> <p> So Google optimise for the former, not the latter, trusting that (a) nerds will find the way to do whatever they need to do even if you don't make it obvious, so there's no need (b) the nerds don't read adverts and thus don't generate any significant revenue.<br> <p> As with XKCD's imaginary secret tech support password, it would be nice if Google provided a raw search facility for people who can spell, know what they're looking for and understand what "not found" means, but it doesn't necessarily make commercial sense. If you ask users "Are you an expert?" they say "Yes" even if they know nothing. And then they complain that they don't understand what happened next. If you provide a "secret" expert mode, "helpful" journalists tell ordinary users about it, and you're back to the same situation. I bet that fully half the quoted search queries on Google are users who don't know what quotes do, but believe that it somehow makes the search give more results, or better results.<br> </div> Sat, 01 Jan 2011 13:30:21 +0000 Not again https://lwn.net/Articles/421366/ https://lwn.net/Articles/421366/ neilbrown <div class="FormattedComment"> 1/ ext3 is the only filesystem I know of that forces and fsync before committing a rename.<br> 2/ ext3 is about 10 years old, so it hasn't been around for "decades" unless you mean "0.9 decades".<br> 3/ When rename was first introduced into Unix in the BSD, it was atomic in the sense that even in the event of a crash there would always be a file with the destination name, either the original or the new. This is in contrast to the previous behaviour. which required:<br> - create "file.tmp"<br> - unlink "file"<br> - link "file.tmp" to "file"<br> - unlink "file.tmp"<br> <p> which can easily leave nothing called "file". This is all that "atomic rename" means, or at least all it meant before ext3 gave rename unfortunate (though useful) semantics. <br> <p> Though I cannot know the intention of the author of that post you linked to, there is no prima-face reason to believe they mean anything more than the atomicity of names (not of contents) that rename has always had in Unix.<br> <p> <p> (and half-written files are easy to detect by writing a checksum at the end. If you suffix each file with a timestamp it is easy to know which is the most recent. And file older than a few minutes will be safe-on-disk so you are always free to clean up any file older than the youngest file that is older than a few minutes)<br> <p> <p> </div> Fri, 31 Dec 2010 22:14:31 +0000 Once again, reenacting history https://lwn.net/Articles/421359/ https://lwn.net/Articles/421359/ man_ls It didn't happen that way. I did explicitly use a journaling filesystem thinking that "journaling" meant that it did not lose data in the event of a crash. When I found out that only metadata was guaranteed to be consistent, I thought "What a sham". Then I (and millions of other people) immediately switched to another filesystem: ext3 with data=ordered, which did offer better guarantees (data journaling) at the cost of performance. Who wants performance when your files are being corrupted? <p> The funny thing is that XFS developers eventually realized their folly and solved the atomicity issues, but now people don't trust them with their data anymore. Fri, 31 Dec 2010 20:21:44 +0000 Not again https://lwn.net/Articles/421352/ https://lwn.net/Articles/421352/ etienne <div class="FormattedComment"> <font class="QuotedText">&gt; Just to avoid a feature which has worked on ext3 for decades</font><br> <p> Well, for decades you did not have hard drives with internal command queueing.<br> To have better performances you need to keep the queue full.<br> Because you cannot tell the hard drive that updating this sector is more important than that one, that information is probably not managed at all in the driver.<br> Moreover, you asked for this behaviour by wanting only metadata journaling of the filesystem, explicitely wanting a coherant filesystem (i.e. no fsck after crash) even if it means data inside files may be corrupted.<br> You can run with data journaling, but people/distributions thinks it does not worth the performance hit.<br> </div> Fri, 31 Dec 2010 19:05:18 +0000 Not again https://lwn.net/Articles/421343/ https://lwn.net/Articles/421343/ man_ls And, the next time? Would you keep all the old files? You can also keep two of them, but how do you know which one of them was the last one written? What if one of them is half-written? That way leads to madness. Just to avoid a feature which has worked on ext3 (and probably all other popular POSIX filesystems) for decades, and which <a href="http://stackoverflow.com/questions/167414/is-an-atomic-file-rename-with-overwrite-possible-on-windows">other OSs</a> are trying to copy. Fri, 31 Dec 2010 16:21:02 +0000 Not again https://lwn.net/Articles/421341/ https://lwn.net/Articles/421341/ etienne <div class="FormattedComment"> How about, when you want to save the new configuration file, not trying to replace the old config file - just keep it in case the new config file is incomplete, still not created or corrupted (after crash)?<br> Should work with any filesystem.<br> </div> Fri, 31 Dec 2010 16:08:15 +0000 And yet again here we are https://lwn.net/Articles/421339/ https://lwn.net/Articles/421339/ man_ls What I want is not a durable file, but an atomic rename. Not an empty file, but either the old version or the new. <p> Apparently the atomic rename is too confusing, or I am not explaining the use case clearly. Think about atomic appends to files then. When you append some sectors atomically, you want either the old file without the new sectors or the file with the new sectors at the end. What XFS did (and I experienced first hand) was add some uninitialized sectors to the file, and afterwards write the new content to the sectors. This behavior is apparently allowed by POSIX, and yet extremely annoying to users, who moved to other filesystems in droves. <p> An atomic append would guarantee that the new sectors would either be present with the expected contents or not present at all, but never contain random garbage. We don't need an fsync after every sector, nor would it solve the problem: after the write but before the fsync the filesystem would be in an incoherent state anyway, albeit for a short time. Fri, 31 Dec 2010 14:08:13 +0000 Not again https://lwn.net/Articles/421324/ https://lwn.net/Articles/421324/ Nick <div class="FormattedComment"> If you don't need files to be durable, then don't fsync them!<br> <p> If there is a crash, then you don't have to bother with atomicity, just delete the files (which is possible because you didn't require durability).<br> <p> These aren't inefficiencies, they are actually efficiencies, because they expose an API that is simple and efficient to implement for the memory management and filesystems. You can build arbitrarily more complex protocols on top of that.<br> <p> </div> Fri, 31 Dec 2010 01:00:08 +0000 Not again https://lwn.net/Articles/421270/ https://lwn.net/Articles/421270/ man_ls What is missing is that you don't really want all the files you write to be durable, even if you think you do: many of them are just temporary files which won't perhaps be needed in the future, and for the rest the write operation can be delayed a few seconds with no ill effects. You just want your renames to be atomic: either keep the old file or overwrite it with the new one. And the same with appends. It's not really important which version (old or new) is left on disk, but do never leave corrupted files (empty files or files with unitialized sectors). <p> You can paper over these inefficiencies with new APIs; you can require all developers to use them before you make guarantees about not corrupting data; or you can force them to use threads or processes. But those are not very elegant ways to deal with the problem. I prefer to have a filesystem which silently deals with the problem without corrupting my data, like we did with ext3 in the good old times. <p> But once again, please read the original articles where these issues were truly beaten to death. Thu, 30 Dec 2010 13:43:51 +0000 This is funny... https://lwn.net/Articles/421268/ https://lwn.net/Articles/421268/ Nick <div class="FormattedComment"> Well I thought MyIASM lack of ACID was widely derided and apparently updates weren't even atomic versus crash recovery, and they now default to using innodb engine which is full ACID.<br> <p> But the article didn't really mention durability. It mentioned lack of integrity, whereas durability seems like it was implied ("MyISAM tables effectively always operate in autocommit = 1 mode").<br> <p> You can definitely turn off fsync on RDBMS which I think is used to do bulk populates of a new database. But there is definitely that point of populating the thing to transitioning to live data when you need a durable point too. But this is because crash recovery at this point is trivial (recreate the db) compared to the larger cost of fsync.<br> <p> </div> Thu, 30 Dec 2010 12:16:41 +0000 Not again https://lwn.net/Articles/421267/ https://lwn.net/Articles/421267/ Nick <div class="FormattedComment"> Then you use the normal posix API to write your emergency backup files. I still fail to see what is missing here.<br> <p> Write the file (to a new name, obviously, don't overwrite the old one until the new one is durable), and optionally kick off an asynchronous writeback of that file. At some point in future when durability is required (eg. if you guarantee some window or interval on your backed up data), then you would fsync (which should be mostly noop if the asynchronous writeback already completed). And then perform some checkpoint such as a lock file or sqlite transaction or something that indicates the file is now durable.<br> <p> It's really not a big deal to implement some simple transactional-like recovery protocol on top of the POSIX API, and it has been done in these ways for a long time. It seems like a new wave of programmers has just forgotten about this.<br> <p> Or, if you want to do slow, synchronous operations without blocking the whole app, that's trivial too -- just use processes or threads to do those slow operations.<br> <p> <p> </div> Thu, 30 Dec 2010 12:07:18 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421256/ https://lwn.net/Articles/421256/ iabervon <div class="FormattedComment"> My model can't really fail to be accurate, since it includes the possibility of arbitrary deviations from the predicted outcome. And, actually, nothing is safe at all; your storage medium might fail, your video driver might scribble over your disk or your dirty pages, your hard drive might read garbage out of memory losing power and write it with the power left in its capacitors. I actually suspect that, based on the model I stated, a more common and more extensive source of differences from some potential snapshot is things that syncing couldn't have helped with than things that syncing could have helped with (with the exception of ext4 having a particularly common and obvious divergence).<br> <p> There's also been not that long in the UNIX tradition when you could be reasonably confidant that a power failure shortly after you changed something in a directory wouldn't trash other things in the directory, making it kind of irrelevant whether you'd called fsync on the directory to make sure that the disk was correct before it got corrupted.<br> <p> In general, there's a tradeoff among filesystem complexity, slowness, and <br> deviation from non-crash state. None of these go to zero without making the others terrible, even if you call sync all the time.<br> <p> (In fact, my model does require an fsync when moving a file by copying it, at least across directories; the snapshotting process could read the destination directory before you write the file and the source directory after you unlink it.)<br> <p> </div> Thu, 30 Dec 2010 01:33:48 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421254/ https://lwn.net/Articles/421254/ neilbrown <div class="FormattedComment"> <font class="QuotedText">&gt; I believe that the model that most people have of filesystems is that ...</font><br> <p> That is an overly naive model of a filesystem. It assumes almost completely linearisation of operations on their way to storage. Any re-ordering in the page cache before writeback or in the device queue via an IO scheduler will invalidate that model, and as you can imagine such re-ordering happens a lot.<br> <p> The correct model is "nothing is safe until you call sync or fsync or some other variant", with the understanding that 'sync' is effectively called every 30 seconds or so.<br> <p> I'm glad it is obvious that you need to call fsync (on both the file and the directory you created the file in) before acknowledging the receipt of a file (e.g. an email) over a network connection.<br> <p> However exactly the same is true when moving a file by copying it. If you copy a file (possibly transforming it on the way) and the remove the original you really must fsync the new copy before unlinking the old. You should also fsync the directory, though if you rename the new (after fsyncing it) to replace the old, then the fsync of the directory is not required.<br> <p> Note that "mv" doesn't do the fsync when moving a file between filesystems (which requires a copy/unlink). So if you use mv and then crash you could quite possibly lose both copies. And mv doesn't even have an option to request the fsync.<br> <p> Now you might suggest that this should "just work" without mv needing to call fsync. But I think you would find it quite difficult to design the filesystem semantics that would allow this to always be safe, especially as you need interaction between two separate filesystems (unlink in one must not commit until writes in the other have committed). ... other than mounting everything with '-o sync' of course.<br> </div> Thu, 30 Dec 2010 00:14:57 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421246/ https://lwn.net/Articles/421246/ jzbiciak <P>atime updates are writes (even though the app only does a read). The comment I was replying to seemed to suggest that pure reads wear out flash. ie. if I mounted a volume read-only, that I could shorten its life dramatically by reading it regularly.</P> <P>While I'm sure there's some impact to reading a flash cell, I've got to believe it's a few orders of magnitude smaller than the effect due to writes, and therefore generally ignorable.</P> Wed, 29 Dec 2010 20:16:04 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421237/ https://lwn.net/Articles/421237/ sorpigal That's really irritating. I'm getting more and more annoyed with Google silently introducing bad behavior like this which, like site previews, I don't see a way to globally disable. Do I have to start prefixing every search term with +? Wed, 29 Dec 2010 18:17:11 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421236/ https://lwn.net/Articles/421236/ cmccabe <div class="FormattedComment"> I think the failure mode that Ted T'so was talking about was data loss, not filesystem corruption. The assumption is that you will be able to replay the journal to get the filesystem back into a known state without fsck.<br> <p> The only wildcard is the behavior of the flash firmware. If it lies to you and says things are committed to flash when they really aren't, really anything could happen. However, it's hard to see how any filesystem can get around this problem, if it exists. Keep in mind you can't rely on ordering either, since the flash firmware needs to reorder your requests to do wear leveling and so forth.<br> </div> Wed, 29 Dec 2010 18:10:38 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421231/ https://lwn.net/Articles/421231/ iabervon <div class="FormattedComment"> Using fsync only really makes sense if you're trying to get stuff written to disk before sending a message out of the system; otherwise, it won't be possible to tell whether the fsync didn't actually do anything or the system crashed before it returned. So you need to use fsync after writing a received email message to disk and before telling the remote server that you've got it.<br> <p> I believe that the model that most people have of filesystems is that what's recovered after a system crash is like a snapshot of the filesystem that you would see in a running system if you were taking the snapshot with ordinary system calls and could therefore see all the race conditions you can see between programs; however, there is arbitrary random damage because the system crashed, and the latest snapshot may not be particularly recent.<br> <p> With this model, fsync is easy to (know to) use in cases where you want to make sure that the snapshot is sufficiently recent, but not for cases where it is necessary to avoid the recovered state being something that couldn't have been a snapshot.<br> <p> </div> Wed, 29 Dec 2010 17:42:16 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421221/ https://lwn.net/Articles/421221/ foom <div class="FormattedComment"> <font class="QuotedText">&gt; I don't know anyone who removes batteries from his or her phone "all the time."</font><br> <p> Ever wanted to swap out a sim card? Or an SD card? You often need to remove the battery to do that. Remembering to properly shut down the phone when you're doing that is certainly not likely to happen all the time.<br> </div> Wed, 29 Dec 2010 15:26:02 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421219/ https://lwn.net/Articles/421219/ busterb <div class="FormattedComment"> Just use the 'noatime' mount option.<br> </div> Wed, 29 Dec 2010 15:14:56 +0000 Syncing has significant performance penalties. https://lwn.net/Articles/421211/ https://lwn.net/Articles/421211/ gmatht <div class="FormattedComment"> The applications that actually really need durability of data written in the last few seconds don't seem to be that common... one might hope that the people who wrote the database your bank uses, would know about fsync. Even on ext4 a trivial fsync takes 50ms[1], which is forever in computer times, much more even that the ~0.1ms for creating new files, but losing everything because the filesystem decided to write out the metadata before the data (violating atomicity) isn't that great either. <br> <p> Apparently xsyncfs provides a system that is synchronous from the users point-of-view with an overhead of only 3%-7%. That might be an acceptable default. Xsyncfs doesn't seem very well documented, but is just one avenue of providing good reliability properties without the massive performance penalties from fsync/-o sync.<br> <p> [1] www.ucc.asn.au/~mccabedj/fsync_benchmark.c<br> <p> <p> </div> Wed, 29 Dec 2010 14:26:35 +0000 Not again https://lwn.net/Articles/421207/ https://lwn.net/Articles/421207/ man_ls It's not that developers don't want durability: quite often they do, for example after saving a file to disk. But in those instances it is safe and clean to provide it by using fsync(). I don't care if my application pauses for a few seconds after saving a file to disk, but at that point I want durability. I don't want it to stop every minute when it saves an emergency backup file, but neither do I want it to corrupt said emergency file; at those moments I want atomicity. <p> I was probably not clear enough when speaking about "developers", since they are not here the determinant force here but merely a vehicle for users needs. Users want robust filesystems which do not corrupt their data; application developers just want to do their stuff without being bothered by the underlying filesystem. It is filesystem developers which need to provide for those seemingly disjoint requirements by providing atomicity always (again, merely a vehicle for robust filesystems) and durability sometimes (only when asked for explicitly). <p> If POSIX does not require atomicity in renames and appends, then are filesystem developers free to corrupt user files and claim to be POSIX-compliant? Ask XFS developers, which did corrupt files once in a while for a few years and lost most of their users in the process, what good this compliance does. If ext4 did this then the whole Linux ecosystem would suffer in the process as it is the default filesystem. <p> Implementing filesystems on a database-like layer is what Microsoft Longhorn set out to do, one of the reasons why it was delayed some six years, and also why the final Windows Vista was so utterly bad: a lot of resources were spent in what was, simply put, bad engineering. I would have said "in retrospect" but for many people it was obviously a mistake from the beginning. There have been a few other contenders in the filesystem-on-a-databse category and IIRC all failed. Wed, 29 Dec 2010 13:04:04 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421205/ https://lwn.net/Articles/421205/ drag <div class="FormattedComment"> <font class="QuotedText">&gt; I don't know anyone who removes batteries from his or her phone "all the time." </font><br> <p> I think once and then having the FS corrupt would be enough to piss off most people, will cause upset feelings and costs on both the customer service and customer side of things.<br> <p> I couldn't imagine recovering from a non-functioning firmware would be fun for most people. Probably would require mailing the thing in or a drive to the service center. It is not like you can just plug in your Ubuntu CD and go into recovery mode or anything like that.<br> </div> Wed, 29 Dec 2010 11:45:03 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421204/ https://lwn.net/Articles/421204/ gowen <blockquote><i>And since it has a battery, it never loses power abruptly.</i></blockquote>Never dropped your phone and had the back fly off and the battery fall out? I've done that at least once with phone I've owned. Now granted, I like small, sleek, slim (and fragile) phones over more robust smartphones, but I still wouldn't rule it out. Wed, 29 Dec 2010 10:43:47 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421198/ https://lwn.net/Articles/421198/ neilbrown <div class="FormattedComment"> fsync is only needed if your computer crashes. Not using it works perfectly when your computer doesn't crash.<br> <p> By your argument, fsync will not be used consistently, and that appears to be true to some extent.<br> <p> The implied conclusion seems to be that all filesystems should be mounted "-o sync" so that fsync is not needed. Strangely, I have not heard that conclusion being proposed explicitly....<br> <p> I certainly agree that interfaces should be hard to misuse (the Rusty principle) but that must be balanced against the dictum against making things fool proof as then only a fool would use them. In this case, while it is quite possible to misuse fsync (e.g. by not using it), it really is an appropriate interface.<br> <p> And while regression tests suites are incredibly valuable and there should be more of them etc etc, one hopes that developers don't depend of them as the sole means of ensuring correctness, but also read documentation, try to understand the systems they work with, and write code accordingly. (one also hopes for a pony.... but no, only a piece of coal in my stocking again)<br> </div> Wed, 29 Dec 2010 08:59:09 +0000 This is funny... https://lwn.net/Articles/421199/ https://lwn.net/Articles/421199/ khim <p>The most popular SQL database in the most popular mode only <a href="http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-transactions.html">offers atomicity but not durability</a>.</p> <p>The fact that it remains the most popular despite that says volumes about what peeple <b>need</b> (as opposed to <b>want</b>).</p> <p>People ask for durability when they need atomicity - but that's because, as you've said, usually developers don't know what they need (they usually know what they want, but that's different thing).</p> Wed, 29 Dec 2010 08:47:24 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421197/ https://lwn.net/Articles/421197/ cmccabe <div class="FormattedComment"> Hmm. Personally, I shut down the phone by holding down the power button. And since it has a battery, it never loses power abruptly.<br> <p> I don't know anyone who removes batteries from his or her phone "all the time." First of all, you only turn off the phone when it locks up, which is extremely rare-- I think it's happened like once in my year of owning a Nexus One. Second of all, you'd have to know how to get at the battery. This is already beyond the skill level of grandma-type users. Keep in mind that some phones don't even have a removable battery, like the iPhone. Thirdly, you have to be dumb enough to not know the normal way of turning off the phone. Do all three of these factors really line up that often? I'm skeptical.<br> </div> Wed, 29 Dec 2010 08:10:27 +0000 Not again https://lwn.net/Articles/421194/ https://lwn.net/Articles/421194/ Nick <div class="FormattedComment"> I don't know that developers want atomicity but not durability. I'm not quite sure if developers know what they want, most of the time. At least, there seem to be a lot of misconceptions and misuse of these things. I don't think SQL provides atomicity without durability, does it? (maybe an RDBMS specific extension, but I'm not aware of them).<br> <p> It's true that posix filesystem API is not trivial to write a crash recoverable protocol on top of, when you are talking about multiple files and directory structure, but it's not rocket science. I think a lot of userspace developers believe that it is terribly difficult and non-performant to implement in their apps, but it would somehow become free of complexity and cost if implemented in the kernel.<br> <p> Not only would it not be free, but it would add a lot of complexity and divergence (between fses, other OSes) to a layer that is currently quite simple and used by all sorts of apps that do not need such semantics.<br> <p> I'm not saying it would be a useless feature. But I have not seen anywhere somebody show code and numbers showing that it is compelling, over alternatives. Alternatives include implementing your own atomicity/cleanup protocol on the posix API (which really isn't too hard, and can absolutely include asynchronous writeback until durability is required), or using sqlite or bdb or something to either store all your data or at least store a log of the state of your file/directory structure. And mind you, the alternatives are very well tested and will work on all OSes.<br> <p> </div> Wed, 29 Dec 2010 06:42:06 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421191/ https://lwn.net/Articles/421191/ xxiao <div class="FormattedComment"> Can we disable ext4 and enable YAFFS instead..how hard will that be? What makes Android so special that only one FS is chosen?<br> </div> Wed, 29 Dec 2010 05:29:11 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421190/ https://lwn.net/Articles/421190/ iabervon <div class="FormattedComment"> The thing is that transactional rename semantics works for all POSIX-compliant filesystems when your computer doesn't crash. Anything that's only needed if your computer crashes isn't going to be used consistently, because developers' computers crash so rarely and it's awkward to include in an application regression test suite.<br> <p> </div> Wed, 29 Dec 2010 04:45:41 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421189/ https://lwn.net/Articles/421189/ jzbiciak <BLOCKQUOTE><I>I think few people realize how truly difficult it is to do good wear leveling. <B>Even reads cause wear!</B></I></BLOCKQUOTE> <P>Really? I've never never heard that reads cause any appreciable wear. Can you share a reference?</P> Wed, 29 Dec 2010 04:15:53 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421188/ https://lwn.net/Articles/421188/ foom <div class="FormattedComment"> "Short of users yanking out the battery, he says, it's unlikely that Android devices will routinely run into the kind of system failure that causes data loss for applications that don't properly use fsync."<br> <p> Um okay, but people do remove batteries from devices *all the time* and won't think about properly shutting off their phone first...<br> </div> Wed, 29 Dec 2010 04:12:51 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421187/ https://lwn.net/Articles/421187/ flewellyn <div class="FormattedComment"> No, your search did a "did you mean?" attempt at spelling correction, and found nothing. If you insist on Google searching for what you actually typed, you find plenty.<br> </div> Wed, 29 Dec 2010 04:07:51 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421185/ https://lwn.net/Articles/421185/ bk "petegn site:lwn.net"<br> <blockquote type=cite> No standard web pages containing all your search terms were found. <p> Your search - petegn site:lwn.net - did not match any documents. <p> Suggestions: <p> Make sure all words are spelled correctly.<br> Try different keywords.<br> Try more general keywords.<br> Try fewer keywords.<br> </blockquote> <p> Perhaps *you* are the troll? Wed, 29 Dec 2010 03:03:36 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421182/ https://lwn.net/Articles/421182/ neilbrown <div class="FormattedComment"> 1/ I wasn't citing Ts'o's opinion. I was citing his report on a meeting of several filesystem developers. He wasn't say what "should". He was saying what "is".<br> <p> 2/ The transaction rename semantics that ext3 provided were really a bug (or mis-feature or short-sighted design or whatever). I think it was only ext3 that provided it, certainly not ext2, probably not XFS, not sure about reiserfs. Any userspace that relies on it (without checking that the filesystem in use is ext3) is buggy.<br> <p> That said - I think that it would be good if Linux did provide some transactional guarantees that didn't require fsync and that user-space could rely on across all filesystems. I suspect that enhancing rename would be a good start and could be done with little or no performance cost. It might even be good to provide something more explicit. But I don't think that 'barriers' is the right model.<br> </div> Wed, 29 Dec 2010 03:01:20 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421178/ https://lwn.net/Articles/421178/ quotemstr <blockquote>This observation is somewhat amusing in light of the fact that barriers in the Linux FS/Block layer were recently replaced with controlled flushing.</blockquote>And the second part of that plan is to use threads and internal queues to achieve the same overall effect; that's not really an option for userspace. <p> As for citing Tso's: his views on the subject are widely-known; that doesn't make them correct. There is nothing wrong with an application relying on transactional rename semantics, and asking userspace to not use reasonable, convenient behavior that's worked for years is simply not a tenable position. Wed, 29 Dec 2010 02:09:02 +0000 Ext4 filesystem hits Android, no need to fear data loss (ars technica) https://lwn.net/Articles/421173/ https://lwn.net/Articles/421173/ swetland <div class="FormattedComment"> Well, looks like an SD/MMC device in the case of most devices we're working with, but yeah, no magical offload of the work to the host CPU. Looks like a block device. Behaves (mostly) like a block device. Probably supports TRIM. Etc.<br> </div> Wed, 29 Dec 2010 00:18:46 +0000