Fsyncers and curveballs (the Firefox 3 fsync() problem)
I think you can see where this is going: if there's a lot of data waiting to be written to disk, and Firefox's (sqlite's) request to flush the data for one file actually sends all that data out, we could be waiting for a while. Worse, all the other applications that are writing data may end up waiting for it to complete as well. In artificial, but not entirely impossible, test conditions, those delays can be 30 seconds or more. That experience, to coin a phrase, kinda sucks. Does it suck as much as file corruption wiping out your bookmarks after your computer (not Firefox) crashes? As you might imagine, opinions vary."
Posted May 26, 2008 14:51 UTC (Mon)
by szh (guest, #23558)
[Link] (11 responses)
Posted May 26, 2008 16:35 UTC (Mon)
by orev (guest, #50902)
[Link] (8 responses)
Posted May 26, 2008 17:34 UTC (Mon)
by ikm (guest, #493)
[Link]
Posted May 27, 2008 0:10 UTC (Tue)
by szh (guest, #23558)
[Link] (6 responses)
Posted May 27, 2008 0:57 UTC (Tue)
by bojan (subscriber, #14302)
[Link] (5 responses)
Posted May 27, 2008 10:03 UTC (Tue)
by szh (guest, #23558)
[Link] (4 responses)
Posted May 27, 2008 10:30 UTC (Tue)
by bojan (subscriber, #14302)
[Link] (3 responses)
Posted May 27, 2008 16:19 UTC (Tue)
by drag (guest, #31333)
[Link] (2 responses)
Posted May 27, 2008 21:19 UTC (Tue)
by roc (subscriber, #30627)
[Link] (1 responses)
Posted May 28, 2008 9:01 UTC (Wed)
by IkeTo (subscriber, #2122)
[Link]
Posted May 26, 2008 18:04 UTC (Mon)
by ikm (guest, #493)
[Link]
Posted May 26, 2008 23:08 UTC (Mon)
by bojan (subscriber, #14302)
[Link]
Posted May 26, 2008 14:57 UTC (Mon)
by MisterIO (guest, #36192)
[Link] (22 responses)
Posted May 26, 2008 15:09 UTC (Mon)
by lmb (subscriber, #39048)
[Link] (2 responses)
Posted May 27, 2008 16:23 UTC (Tue)
by drag (guest, #31333)
[Link] (1 responses)
Posted Jun 20, 2008 20:38 UTC (Fri)
by jlokier (guest, #52227)
[Link]
Posted May 27, 2008 2:30 UTC (Tue)
by roc (subscriber, #30627)
[Link] (18 responses)
Posted May 27, 2008 4:19 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (16 responses)
Posted May 27, 2008 4:46 UTC (Tue)
by roc (subscriber, #30627)
[Link] (15 responses)
Posted May 27, 2008 5:33 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (14 responses)
Posted May 27, 2008 5:35 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (13 responses)
Posted May 27, 2008 5:42 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (2 responses)
Posted May 27, 2008 5:48 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (1 responses)
Posted May 28, 2008 7:30 UTC (Wed)
by MisterIO (guest, #36192)
[Link]
Posted May 27, 2008 13:21 UTC (Tue)
by gerv (guest, #3376)
[Link] (9 responses)
Posted May 27, 2008 18:40 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (8 responses)
Posted May 27, 2008 18:43 UTC (Tue)
by gerv (guest, #3376)
[Link]
Posted May 27, 2008 18:48 UTC (Tue)
by zlynx (guest, #2285)
[Link]
Posted May 28, 2008 1:03 UTC (Wed)
by roc (subscriber, #30627)
[Link] (5 responses)
Posted May 28, 2008 7:42 UTC (Wed)
by MisterIO (guest, #36192)
[Link] (4 responses)
Posted May 28, 2008 10:05 UTC (Wed)
by jond (subscriber, #37669)
[Link]
Posted May 28, 2008 12:48 UTC (Wed)
by roc (subscriber, #30627)
[Link] (1 responses)
Posted May 28, 2008 18:40 UTC (Wed)
by MisterIO (guest, #36192)
[Link]
Posted Jun 27, 2008 13:25 UTC (Fri)
by sharkb (guest, #52709)
[Link]
Posted May 27, 2008 9:33 UTC (Tue)
by nbd (subscriber, #14393)
[Link]
Posted May 26, 2008 16:07 UTC (Mon)
by arjan (subscriber, #36785)
[Link] (5 responses)
Posted May 26, 2008 17:19 UTC (Mon)
by lmb (subscriber, #39048)
[Link] (2 responses)
Posted May 26, 2008 17:20 UTC (Mon)
by arjan (subscriber, #36785)
[Link]
Posted Jun 1, 2008 22:19 UTC (Sun)
by jlokier (guest, #52227)
[Link]
Posted May 27, 2008 18:12 UTC (Tue)
by stephen_pollei (guest, #23348)
[Link] (1 responses)
Posted Jun 1, 2008 22:15 UTC (Sun)
by jlokier (guest, #52227)
[Link]
Posted May 26, 2008 17:28 UTC (Mon)
by ikm (guest, #493)
[Link] (33 responses)
Posted May 26, 2008 17:40 UTC (Mon)
by MisterIO (guest, #36192)
[Link] (3 responses)
Posted May 27, 2008 2:22 UTC (Tue)
by roc (subscriber, #30627)
[Link] (2 responses)
Posted May 27, 2008 4:25 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (1 responses)
Posted May 27, 2008 18:50 UTC (Tue)
by zlynx (guest, #2285)
[Link]
Posted May 27, 2008 3:22 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (28 responses)
Posted May 27, 2008 3:33 UTC (Tue)
by roc (subscriber, #30627)
[Link] (27 responses)
Posted May 27, 2008 7:36 UTC (Tue)
by khim (subscriber, #9252)
[Link]
If something is not used by user at all and it starts to be used - expect the breakage. The only way to "solve" this problem is to change nothing - and this leads to "XP forever" campaigns... It's Ok for BETA version of software to depend on new but RELEASED version of library. Most distributions include GTK 2.12 nowadays and if someone wants to use something ancient - that's their problem. Sid includes GTK+ 2.12 too so once Debian will manage to issue new release - problem will be in the past.
Posted May 27, 2008 13:56 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (1 responses)
I guess GTK's print setup is broken somehow on your system.
Very possibly; this is on Debian Etch which is too "ancient" for the Firefox gurus. I had to install a private copy of gtk+ Every time we try to make people happier with deeper GTK integration, AIEE. Every time Firefox gets deeper GTK integration, I get unhappier, because formerly-working stuff starts breaking, or formerly-fast stuff gets miserably slow (ie, the grotesque GTK+ file browser which mercifully can be turned off in about:config) Anyway... even if CUPS is busted, Firefox should at a minimum offer to produce a Postscript file. Printing using "lpr" works fine for me if only I could convince the #*$&&*#$ web browser to write a Postscript file...
Posted May 27, 2008 21:33 UTC (Tue)
by khim (subscriber, #9252)
[Link]
Anyway... even if CUPS is busted, Firefox should at a minimum offer to produce a Postscript file. To make it happen you need to keep the whole another printing library around. That's Windows way: sure with Windows NT core it's easy, but Windows95 it's still popular so let's use old library. And then plug new one in old if we need some effects. Then and patches to fix gotchas and another patches to fix problem introduced by patches. Then 10 years down the road you need 2GB or RAM and two cores just to print two pages of text. Not a good idea. May be it was to early to switch to gtk-print, may be not (after all Firefox is not released yet and may be Debian will manage to ship another release before that happens), but to have TWO print subsystems is just crazy.
Posted May 27, 2008 14:22 UTC (Tue)
by GreyWizard (guest, #1026)
[Link] (23 responses)
Posted May 27, 2008 14:51 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (22 responses)
You can't please everybody, but making the browser work consistently
with the underlying platform is the right thing to do. And if your underlying platform is KDE/Qt instead of gtk? (Not that mine is, but there are a significant number of Linux users who use KDE.) Breaking formerly-working code and making formerly-fast code slow
is never the "right thing to do".
Posted May 27, 2008 15:37 UTC (Tue)
by GreyWizard (guest, #1026)
[Link] (21 responses)
Posted May 27, 2008 17:03 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (20 responses)
Breaking working code and slowing down fast code are consequences of making progress toward other goals that the developers believe are more important. True, but what do users believe to be more important? And usually by the time you have a "Release Candidate", you've fixed up the obvious breakages. As I wrote, I don't use KDE, so I'm not looking for a KDE/Qt browser. I do get alarmed when Firefox developers break stuff and don't undo the breakage. For example, I filed a bug asking for Firefox to default to the (fast) built-in filebrowser dialog (which still ships!) rather than the (slow and broken) GTK+ filebrowser, but met with a negative response. So the question is: If you ship a superior filebrowser, why do you choose to use the stupid one by default??
Posted May 27, 2008 17:33 UTC (Tue)
by GreyWizard (guest, #1026)
[Link] (19 responses)
Posted May 27, 2008 20:25 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (18 responses)
Hopefully the users and developers agree about what's important but the users are more numerous and their opinions vary more. Yes of course! That's part of the joy (challenge?) of actually having customers. Commercial software producers (like my company) have to listen to their customers. Open-source ones should too. For example, you're asking for continued default use of a custom file browser for the GTK+ port and you seem to believe this is what everyone wants or shouldwant.
I don't specifically want the use of a custom file browser. I want the continued use of a fast file browser. We're talking orders-of-magnitude speed difference: http://lwn.net/Articles/279345/
I want the same file browser every other GTK+ application uses.
Even if said file browser is three orders of magnitude (yes, 1000X) slower?
Posted May 27, 2008 20:58 UTC (Tue)
by GreyWizard (guest, #1026)
[Link] (17 responses)
Posted May 27, 2008 23:10 UTC (Tue)
by dskoll (subscriber, #1630)
[Link] (16 responses)
Yes, even if the GTK+ file browser is three orders of magnitude slower I'd rather use it.
* boggle * OK, you've got me there. :-)
Optimizing it in just one application at the expense of a consistent user interface is a poor trade.
Well, the Firefox developers still ship their own (fast) filebrowser, something no GNOME app does. Why is that, I wonder? Consistency is overrated, IMO. If I wanted a brain-dead-boring "consistent" interface, I'd get a Mac (and I'd feel like I was wearing a straitjacket). I like my tweakable idiosyncratic interface, thanks, especially if it gives me a 1000x speedup.
Anyway... this is getting a bit off the original thread topic, which is that FF3 has introduced several important regressions. If printing used to work and is now broken with no workaround by printing to a file, I don't really care about developer goals or justifications. From my point of view, it's just a project moving in the wrong direction.
Posted May 28, 2008 10:46 UTC (Wed)
by Los__D (guest, #15263)
[Link] (7 responses)
If printing used to work and is now broken with no workaround by printing to a file, I don't really care about developer goals or justifications. From my point of view, it's just a project moving in the wrong direction. NOTABUG, the problem is with your system, not the browser.
Posted May 28, 2008 11:47 UTC (Wed)
by dskoll (subscriber, #1630)
[Link] (6 responses)
Posted May 28, 2008 11:57 UTC (Wed)
by Los__D (guest, #15263)
[Link] (5 responses)
Posted May 28, 2008 13:09 UTC (Wed)
by dskoll (subscriber, #1630)
[Link] (4 responses)
Posted May 29, 2008 0:07 UTC (Thu)
by roc (subscriber, #30627)
[Link] (3 responses)
Posted May 29, 2008 2:53 UTC (Thu)
by dskoll (subscriber, #1630)
[Link] (2 responses)
Posted May 29, 2008 5:53 UTC (Thu)
by roc (subscriber, #30627)
[Link] (1 responses)
Posted May 29, 2008 12:45 UTC (Thu)
by dskoll (subscriber, #1630)
[Link]
Posted May 28, 2008 18:57 UTC (Wed)
by GreyWizard (guest, #1026)
[Link] (7 responses)
Posted May 28, 2008 19:53 UTC (Wed)
by dskoll (subscriber, #1630)
[Link] (6 responses)
Are you seriously unable to understand why Firefox ships their own file browser while GTK+ applications don't?
I understand it perfectly. What I don't understand is why they don't use it by default. The gtk+ fans could always change the setting to get the gtk+ browser, but it seems to me that you should choose sensible defaults, not orders-of-magnitude-slower defaults.
Have you ever participated in a substantial software development project in any way? That's a rhetorical question: it's clear that you haven't.
Funny man. I've been writing both commercial and open-source software for the last 18 years in areas ranging from large EDA systems to image-processing, text-processing, networking and personal productivity tools. I own a company that develops commercial software. If you really want, I can e-mail you my resume.
However, you don't need to be a software author to realize that breaking formerly-working functionality (especially core functionality like printing) is a Bad Thing.
Posted May 28, 2008 19:55 UTC (Wed)
by dskoll (subscriber, #1630)
[Link]
Oh, one more thing, I'm immensely grateful to the Firefox developers. All of my criticism is only intended to make Firefox better; I don't mean anything personal by it.
Posted May 28, 2008 20:29 UTC (Wed)
by GreyWizard (guest, #1026)
[Link] (4 responses)
Posted May 29, 2008 1:37 UTC (Thu)
by ikm (guest, #493)
[Link] (1 responses)
Posted May 31, 2008 3:00 UTC (Sat)
by GreyWizard (guest, #1026)
[Link]
Posted May 29, 2008 2:50 UTC (Thu)
by dskoll (subscriber, #1630)
[Link] (1 responses)
For most users the GTK+ file browser is used infrequently and works more or less instantaneously.
Umm... have you tried it? Try the Open With... dialog.
Look, I don't know what percentage of Linux users use GNOME, but it's probably 50% or less. So the people who don't use GNOME have the choice between an irritatingly non-standard but fast file browser, or an irritatingly non-standard and agonizingly-slow file browser. GNOME users are luckier; at least their agonizingly-slow file browser is "standard".
On my machine, the gtk+ browser takes about 25 seconds to browse /usr/bin wherease the Mozilla version is too fast to time. Why is that? The gtk+ browser, when faced with files without extensions, opens and reads a bit of every single file to identify the file type (by "magic") so it knows which pretty little icon to display. If that isn't abominable, I don't know what is.
Better yet, find the bug in the GTK+ file browser and submit patches.
I filed a bug with the gtk+ authors. Someone else has even submitted patches. They have not (to my knowledge) been accepted.
As for breaking printing not being a "catastrophe", you are right. But it is a major regression and stumbling block, and to argue otherwise is simply absurd.
Posted May 31, 2008 3:35 UTC (Sat)
by GreyWizard (guest, #1026)
[Link]
Posted May 26, 2008 17:43 UTC (Mon)
by tialaramex (subscriber, #21167)
[Link] (10 responses)
Posted May 26, 2008 20:01 UTC (Mon)
by sergey (guest, #31763)
[Link]
Posted May 26, 2008 20:45 UTC (Mon)
by nix (subscriber, #2304)
[Link]
Posted May 26, 2008 21:15 UTC (Mon)
by Los__D (guest, #15263)
[Link]
Posted May 26, 2008 23:40 UTC (Mon)
by sb (subscriber, #191)
[Link]
Speaking of which, I've often wondered why the search boxes that keep getting
added to many Linux desktop apps don't grok REs when there is ubiquitous runtime
support (glibc, libpcre).
I guess we've reached the point where most users have never heard of grep, and
the rest have learned to cope with the deficiencies of graphical apps. Even so,
some sort of special syntax could be agreed on to trigger a RE search while
keeping substring search the default. Time for a RE search freedesktop standard?
Posted May 27, 2008 0:03 UTC (Tue)
by sbergman27 (guest, #10767)
[Link] (4 responses)
Posted May 27, 2008 4:31 UTC (Tue)
by MisterIO (guest, #36192)
[Link] (3 responses)
Posted May 27, 2008 18:18 UTC (Tue)
by sbergman27 (guest, #10767)
[Link] (2 responses)
Posted May 28, 2008 18:45 UTC (Wed)
by MisterIO (guest, #36192)
[Link] (1 responses)
Posted Jun 3, 2008 17:35 UTC (Tue)
by daenzer (subscriber, #7050)
[Link]
Posted May 27, 2008 13:29 UTC (Tue)
by gerv (guest, #3376)
[Link]
Previously typing L offered me various LWN URLs I'd recently visited, a Livejournal page, and a few other things beginning with L. But now, thanks to Firefox 3's new database, I'm offered "Garfield vs Garfield" and "JWZ Mixtape on Blogspot" because I've visited those more recently and they have an L in them somewhere. Yes, it is that stupid.
On the other hand, if you type "curveballs" because that's what you remember about this page, it now finds it for you. How much harder is it to type "lwn", and get all your LWN URLs?
If you're willing to write a log structure
instead of building a database, you lose nothing.
Apart from the various new features Places enables. You may not like (some of) them but the general feedback has been very positive. Perhaps people will call me biased, but I love the awesomebar. It pretty much reads my mind. :-)
Gerv
Posted May 26, 2008 19:51 UTC (Mon)
by job (guest, #670)
[Link] (13 responses)
Posted May 26, 2008 22:14 UTC (Mon)
by man_ls (guest, #15091)
[Link]
You may think: well, but most people run Windows and have lots of memory to spare. Maybe it is time to put it to good use! Why squeeze every available bit when everyone has GBs of RAM? Well, just visit www.google.com once more. The home page to the biggest internet company works on every browser and loads fast as lightning. In these days of broadband and dynamic websites it has 2728 bytes. Now compare with how it looked like 8 years ago, at the height of the internet bubble, back when most people had pitiful modems and ISDN was a luxury. Apart from the iGoogle links, it feels the same! Google has not grown rich bloating its bread and butter.
As you say, it is the direction taken by Netscape. Next they will rewrite the engine in Java, go Windows-only, integrate a mail client or any other classical silly move. At that point we will be missing a crucial part of our infrastructure, right now when we were getting web designers to pay attention. So we will suffer another period of obscurity and internet monoculture. And then we will have to wait until someone comes along with a new lightweight browser project within Mozilla... Boring.
Posted May 26, 2008 23:39 UTC (Mon)
by joey (guest, #328)
[Link] (4 responses)
Posted May 27, 2008 2:38 UTC (Tue)
by roc (subscriber, #30627)
[Link] (2 responses)
Posted May 27, 2008 3:21 UTC (Tue)
by vmole (guest, #111)
[Link]
Apple won't let me use the Safari code, either, so I don't the comparison is apt.
OTOH, I don't really have a problem with the firefox trademark position.
Steve, Debian Iceweasel user.
Posted May 27, 2008 4:26 UTC (Tue)
by ajf (guest, #10844)
[Link]
Posted May 27, 2008 19:24 UTC (Tue)
by tzafrir (subscriber, #11501)
[Link]
Posted May 27, 2008 2:36 UTC (Tue)
by roc (subscriber, #30627)
[Link] (5 responses)
Posted May 27, 2008 4:03 UTC (Tue)
by AJWM (guest, #15888)
[Link] (4 responses)
Posted May 27, 2008 4:11 UTC (Tue)
by roc (subscriber, #30627)
[Link] (3 responses)
Posted May 27, 2008 16:37 UTC (Tue)
by AJWM (guest, #15888)
[Link] (2 responses)
Posted May 27, 2008 17:28 UTC (Tue)
by quotemstr (subscriber, #45331)
[Link]
Posted May 27, 2008 17:38 UTC (Tue)
by tetromino (guest, #33846)
[Link]
Posted May 27, 2008 13:37 UTC (Tue)
by gerv (guest, #3376)
[Link]
So other simpler web browsers (which can still render the entire web) don't have performance problems at all? Extrapolating from one performance problem to the idea that Firefox is too complicated is a bit of a jump. Firefox is as complex and big as it is (all of a 5Mb download) because the web is complex and big, and people want it all to work right. Working right and using lots of memory don't necessarily go hand-in-hand, as the recent big improvements in speed and memory usage by the Firefox team have shown, but if you think it's still not good enough, show where the savings can be made while still maintaining full web fidelity.
The reason why Red Hat missed the regression
is the problem that needs to be solved, not the other way around.
I think that's what Chris Blizzard is saying.
All this points to a big closed world mentality inside Mozilla where the product is everything and the bigger ecosystem lost. Even if this were true (and I don't think it is - see roc's comments in various places listing all the work we've done for and in other projects), where is the law that says that projects have to take decisions based on the good of "the bigger ecosystem"? Surely if someone wants to take all this software and roll it into an OS distribution, it's their responsibility to make it all work together? Upstream may be helpful or may not - but there's no obligation to help. Right?
Gerv
Posted May 26, 2008 21:03 UTC (Mon)
by jwb (guest, #15467)
[Link]
Posted May 27, 2008 1:45 UTC (Tue)
by stewart (subscriber, #50665)
[Link]
Posted May 27, 2008 2:36 UTC (Tue)
by russell (guest, #10458)
[Link] (1 responses)
Posted May 27, 2008 7:33 UTC (Tue)
by IkeTo (subscriber, #2122)
[Link]
Posted May 27, 2008 11:15 UTC (Tue)
by kleptog (subscriber, #1183)
[Link] (1 responses)
Posted May 27, 2008 21:48 UTC (Tue)
by Cato (guest, #7643)
[Link]
Posted May 27, 2008 13:27 UTC (Tue)
by k3ninho (subscriber, #50375)
[Link] (3 responses)
Posted May 27, 2008 13:37 UTC (Tue)
by njd27 (subscriber, #5770)
[Link] (1 responses)
Well, SQLite has to be an improvement over the brain-dead database-like format they were using before, called mork
Posted May 27, 2008 19:28 UTC (Tue)
by nix (subscriber, #2304)
[Link]
Posted Jun 1, 2008 1:36 UTC (Sun)
by aashenfe (guest, #12212)
[Link]
Posted Jun 4, 2008 16:57 UTC (Wed)
by ringerc (subscriber, #3071)
[Link]
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> Does it suck as much as file corruption wiping out your bookmarks after your computer (not
Firefox) crashes?
1) write to bookmarks.new ,
2) every 5 min
a) fsync
b) mv -f bookmarks.new bookmarks.html
c) open bookmarks.new (new)
d) write all data to bookmarks.new
3) goto 1
easy, fast(if file below 3MB) and safe , it seems FF2 does it this way?
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Obviously!
You should at least understand how Firefox 3 bookmarks work. They use the sqlite database and
no longer use the bookmarks.html file.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
And what difference does it make in regard to the given solution? Sqlite database is just a
file as well.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I am asking - why go for this sql db fsync FF2->FF3 regression ? , nobody will make sql
queries to their bookmarks, imho.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> nobody will make sql queries to their bookmarks
FF3 does.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
again, does it give FF3 any technical superiority over the FF2, or only speed regression ?
As long as file is small imho thats a bad decision. (and yes, a backup copy of sqlite file +
removing fsync, would/will be a solution)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I guess, by looking at FF3B5. FF developers also think so.
Believe it or not, I think this bug is a good thing. If you have a look at the bug itself:
https://bugzilla.mozilla.org/show_bug.cgi?id=421482
You'll see that important kernel folks got involved, so maybe some ext3 bugs will get fixed.
Also SQLite leading man got involved, so maybe it will get improved as a result. And finally
FF will be better for it.
It's just a bug. It will be fixed (actually, looks like it already was fixed). It's all good.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
It's very good that the problem is found and it's getting fixed. It would probably help a
whole of of people and different applications.
It's still probably very silly to use a SQL database to store bookmarks, even if it's a very
light database engine. Seems like a bunch of people need to be smacked by a cluebat that a
lightly formatted flat text file is superior (simplier/faster) to a SQL database for most
things that people need a database for... (ie: storing small amounts of editable data in a
file on a filesystem)
Personally I liked the bookmarks.html. Makes it very easy to backup my bookmarks and use them
with/in other programs.
Ever used bookmarks.html as a home page?
Fsyncers and curveballs (the Firefox 3 fsync() problem)
The real need for a database isn't bookmarks, it's history.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> The real need for a database isn't bookmarks, it's history.
The real need for a database isn't history either. It is extensions. You can have a custom
format for history so that given an URL you know whether it is in it or not, and you can list
all of them in the order of time. Easy. But extension is different. You don't really know
what they need, because each of them need different thing. So your only option is to ship
something really generic, in other words, database. If they have to ship a database anyway, I
don't see any reason they are not merging bookmarks and history into the same framework.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Limiting possible damage to one session is probably ok, since the probability of the damage is
low. So just doing a backup on startup (or, alternatively, restoring from it if the current
copy is mangled too much due to some hardware/kernel failure) would seem fine.
Another solution is to just separate the normal, manually made bookmarks from everything else.
The only real precious stuff is the actual bookmarks, all other automatically collected data
is just a convenience which helps you type less, and which would fix itself over time anyway.
Since they're at rc1 already, maybe it's just too late for all that. I wonder though what
platform they develop on, since this is very obvious stuff and the fact that it is still
present in rc1 probably means Windows is their primary target. I would understand that, but
that's a pity.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I've been using Firefox 3 from b5 version and I recently updated it to version rc1(Debian
distribution) and, with an extremely technical expression I have to say that it sucks really
bad IMO! The handling of memory is better now, but there are a lot of regressions from version
2. Except for the problem discussed here(which, by the way, I noticed too), there are other
problems like for example a big list of websites which are handled really badly, with
appearances and usability completely destroyed. I did a rapid search of the starting date of
Firefox 3 development, and I found that a first alpha release was ready on December 2006!
After so much time, I really don't know how cn they have still so many problems. All this
without considering the fact that webkit already completely passes acid test 3, while usually
firefox(gecko) scores around 60-65%.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Seems to me firefox should use an append-only format for some of its files - that'd mean that
in case of a crash, possibly the last so many transactions would get lost, but that the main
bulk of the data would still be intact and consistent.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
You mean something like:
echo "<something>blahlbahlbah</something>" >> file.text
... what a concept ...
Fsyncers and curveballs (the Firefox 3 fsync() problem)
If you think 'echo "text" >> file' cannot corrupt data before the place you're writing to,
when power is lost at the wrong moment (e.g. laptop runs out of battery), think again. There
are filesystems and filesystem options that will prevent that, but ext3 with default options
isn't one of them. Not just theoretically: I have actually seen such corruption in log files.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> a big list of websites which are handled really badly, with
> appearances and usability completely destroyed.
I'm surprised, since we take all such regressions very seriously, and we've fixed almost all
of them that I know about. Most of the unfixed issues I know about are cases where the site
isn't standards compliant and we became more standards-compliant in a way that breaks the
site.
Please file a Bugzilla bug with your list.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I already filed a bug for all the sites I saw which had problems, but I did it through the
"Report Broken Web Site" function of the browser. The problem is that I reported this same
list of websites for the B5 version and none of them shows any sign of improvement.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
OK, so how about you just paste your list here then.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I don't have a written list, I just send reports while browsing. But maybe some of the
problems are gtk related and in particular something about the last versions. I just noticed
that some(because I couldn't check all of them) of the sites I was talking about have the same
problems on both Firefox 3RC1 and Epiphany-webkit 2.22.1.1, but they have no problems with
Galeon 2.0.4(I have only one version of gecko installed obviously).
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Example site : http://naruto.japflap.com/index.php?page=scantraduk
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Sorry for the flooding, but I just wanted to say that my first guess was really stupid,
because Galeon depends on the same gtk version as the other 2 browsers. Still maybe the
problem should be searched among the differences between these programs.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Or it may be some new Gtk functions used by the new browsers, which aren't used by Gecko
because it was compiled against an older version of gtk.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Notice that where I said Gecko here I meant Galeon. Sorry for the mistake.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
http://naruto.japflap.com/index.php?page=scantraduk
looks good to me in FF3.0rc1 on Ubuntu 8.04. It would help if you said what problems you were
seeing.
Gerv
Fsyncers and curveballs (the Firefox 3 fsync() problem)
There are pieces of the Desktop(various parts like the background or the panels) which are
like pasted on random positions of the web-page.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Nope, don't see that. All looks good to me. I can email you a screenshot if you like. Or, you
could take one and file a bug with it :-)
Gerv
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Oh yeah, I've seen that too. Not very often though, and not always on the same site. I think
its some kind of image rendering glitch. It's like other pixmaps get mixed into the image.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Sounds like an X bug, since Firefox doesn't actually have access to the contents of the
windows of other applications.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
So why Galeon and any other program except for Epiphany-webkit(so another browser) don't have
this problem. If it was X, I should have seen it everywhere.
http://img138.imageshack.us/my.php?image=screenshotthewor...
Fsyncers and curveballs (the Firefox 3 fsync() problem)
That doesn't stand to reason. It's perfectly feasible for only one app to cause a bug in X to
be apparent.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
So you see this bug in epiphany-webkit and Firefox, and you assume it's a Firefox bug? That's
amazing.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Obviously I didn't see that in epiphany because it's more than a month that I'm not using
epiphany anymore, because of its shift to webkit, which is still in experimental stage IMO. I
just tried it there after having reinstalled epiphany to test those sites exactly because here
people were saying they didn't notice that problem.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
In case you didn't find the solution yet (or if someone else is looking for it), take a look
at Debian Bug Report #482992
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482992
In short the solution is to add the following line to the "Device" section of
/etc/X11/xorg.conf
Option "XaaNoOffscreenPixmaps" "on"
You need to restart your X, unless you want to experiment with this:
http://ubuntuforums.org/showthread.php?p=4211618
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Actually on my Mac, RC1 is a lot worse than b5. Many sites, such as planet.debian.org or *any*
Trac site make it crash completely (something fishy with the quartz font handling). I also
submitted reports for those.
Switched back to b5 now, hoping that RC2 will be better.
This is what makes RPM slow as well
The RPM program also does extremely frequent fsync()/fdatasync() calls for the same "stupid"
reason. Just as Firefox, RPM should work on a non-sync copy of it's database and only sync it
once (at the end of a transaction) before renaming the copy over the original db.
Btw, for people who want to know where their system has such latencies.. the latencytop
program (www.latencytop.org) shows this and other bottlenecks right away. Linux is doing
rather poorly in some of these things, even when you ignore the "ext3 has a bad fsync, use
btrfs instead" problem ;-)
This is what makes RPM slow as well
I've had a crazy idea here a few weeks ago. If you look at OCFS2, you can see that modern
filesystems can have more than one journal and coordinate across them. (Even if they might be
merged into a single journal space on disk, logically it could be several.)
You could then have processes join transaction groups - as long as the transactions happen in
unrelated areas of the filesystem, there'd be no need for coordination, and performance would
improve.
Some refinement is needed, but single journal really is sooo 1999 ;-)
This is what makes RPM slow as well
At least btrfs doesn't even have a journal...
... having a journal is soooo 1999 ;)
This is what makes RPM slow as well
Trees and cascades of multiple journals go naturally together. See btrfs, logfs, ubifs, zfs,
reiser4... After a while it stops looking like a journal. But all the tricks to make a high
performance and reliable journal with async barriers can apply to a tree as well.
sync_file_range
Isn't long sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags); the
better more modern alternative to fsync fdatasync? Would smart use of that help both rpm and
sqlite?
sync_file_range
Perhaps but it's not implemented all that well at the moment. The documentation is rather
confusing and leaves out a few important things. The flags are rather specific artifacts of
the way Linux mm works, not a natural "kernel-neutral" API for syncing a file range.
Offtopic
Am I the only one who has a problem in ff3 where pressing right mouse button on a link to
bring up context menu sometimes does some random action with this link instead (opens it in a
new window, adds to bookmarks, and so on)? I just wonder, this looks like a really obvious
problem, but it was in b5 and now continues to be in rc1.
Offtopic
No, you're not the only one. It's one of the many problems I was talking about in a previous
post.
Offtopic
This bug is hard to fix because none of the developers who could fix it ever see it.
See http://ubuntuforums.org/showpost.php?p=4744527&postco... ; please provide your feedback
in the upstream bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=404314
Offtopic
Another funny bug( :-( ) is that of the magical disappearing images! It was present in B5 and
it's still there! The funniest part is that those images which disappear are still selectable
with a right-botton click and downloadable(etc.). It's a kind of magick!
Offtopic
I've seen this also. What I finally noticed is that on really big images you can see the
image top-left corner starting way down, shifted right and down in the image frame. It gets
worse the more it's zoomed.
Another regression
I can't print. :-( That makes FF3 basically... useless.
https://bugzilla.mozilla.org/show_bug.cgi?id=430818
Another regression
I guess GTK's print setup is broken somehow on your system.
It's actually interesting. Every time we try to make people happier with deeper GTK
integration, we end up hurting some people when the GTK solution doesn't work well in some
circumstances.
That's Ok
Another regression
VERY bad idea
Firefox GTK+ Integration
Well, I for one appreciate the deeper GTK+ integration, even if it occasionally creates short
term problems for me. You can't please everybody, but making the browser work consistently
with the underlying platform is the right thing to do.
Firefox GTK+ Integration
Firefox GTK+ Integration
Breaking working code and slowing down fast code are consequences of making progress toward
other goals that the developers believe are more important. This is especially true for
"beta" or "release candidate" software. The bugs have been reported and they'll be fixed when
the necessary resources are available so it's not clear what you think you're going to
accomplish by ranting.
If your underlying platform is KDE/Qt then you should use a browser that integrates with these
technologies or learn to live with the consequences of using one that doesn't. I think it
would be great if Firefox offered a KDE/Qt integrated version in addition to the GTK+ port,
but as far as I know they don't yet. You could try Konquerer. In any case whining is not
going to help you.
Firefox GTK+ Integration
Firefox GTK+ Integration
Hopefully the users and developers agree about what's important but the users are more
numerous and their opinions vary more. To make matters worse, each believes he or she is
representative of the rest. For example, you're asking for continued default use of a custom
file browser for the GTK+ port and you seem to believe this is what everyone wants or should
want.
It's not what I want. I want the same file browser every other GTK+ application uses. That
saves me the trouble of mastering the quirks of two incompatible systems for doing the same
thing. I don't mind working around a few bugs for a while to get there. Which of us is
actually more representative of the mainstream of Firefox users is a difficult question but
for now the Firefox developers seem to think it's me. I won't argue with that. :-)
Firefox GTK+ Integration
Firefox GTK+ Integration
Yes, even if the GTK+ file browser is three orders of magnitude slower I'd rather use it.
Don't get me wrong, I would be happy to see whatever bug is causing that performance difference
fixed but it's just not a problem for me in practice so I won't be the one submitting the
patches. I spend at most a fraction of a percent of my time at the computer using the file
browser and I believe that's true for most people. Optimizing it in just one application at
the expense of a consistent user interface is a poor trade.
As for listening to customers, you're implication that free software projects don't is
mistaken. They do, but there are too many users with too many requests to satisfy everyone,
just as there are for successful proprietary products. Available resources are spent
according to what seems to be most important. You clearly have a different idea of what's
important than GTK+ and Mozilla developers but this alone doesn't prove that they're wrong.
Firefox GTK+ Integration
Firefox GTK+ Integration
Firefox GTK+ Integration
ISABUG. Even if you find no printers, produce Postscript.
Firefox GTK+ Integration
FEATUREREQUEST ;)
Firefox GTK+ Integration
REGRESSIONNOTAFEATUREREQUEST. :-)
FF 2.0 will produce PostScript even if it doesn't detect printers, AFAIK.
Firefox GTK+ Integration
Sure, because FF2 had its own print dialog with its own CUPS integration etc. But there were a
lot of problems with that, so we switched to the GTK+ print support.
Now you will say that to ensure things keep working for all users, we need to ship support for
the old print code as well as the GTK+ integration code. Of course, if we did that, people
would complain about bloat.
Can't win.
I don't care if you only ship a print dialog with gtk+ print dialog support providing you have a way to generate Postscript to a file. Surely the Postscript rendering code needs to be built into Firefox anyway?
Firefox GTK+ Integration
Firefox GTK+ Integration
We wouldn't want to provide "available by default" UI for a feature that only people with
broken print setups would use.
Someone could write an extension though. This PDF output extension might work for you if you
can post-process the PDF. It probably only needs slight tweaks to make it output PS instead.
https://addons.mozilla.org/en-US/firefox/addon/5971
Firefox GTK+ Integration
Print-to-PDF extension is perfect. Thank you!
Firefox GTK+ Integration
Are you seriously unable to understand why Firefox ships their own file browser while GTK+
applications don't? Seriously? Have you ever participated in a substantial software
development project in any way? That's a rhetorical question: it's clear that you haven't.
If you had you might understand that micro-benchmarks are not a sane way to judge entire
applications, that development resources are limited and that no project can be all things to
all people.
It's too bad you're not happy with Firefox 3. I am. The developers have clearly put in a
tremendous effort and have done an excellent job improving things that really matter including
memory management, Javascript performance and platform integration. I'm impressed with the
result and grateful for the hard work that made it possible. I think I'm not alone.
Firefox GTK+ Integration
Firefox GTK+ Integration
Firefox GTK+ Integration
As I've already explained, using the Mozilla file browser by default would be the wrong
choice. For most users the GTK+ file browser is used infrequently and works more or less
instantaneously. Almost no one would even notice a three order of magnitude performance
improvement in an number that's nearly zero. But they most certainly *would* notice and
suffer from a file browser that's inconsistent with the rest of their working environment.
Cognitive resources are much more important than the computational kind, so doing what you ask
for would be a serious usability mistake.
Now, you may have some unusual usage pattern that makes you particularly sensitive to file
browser performance. Go ahead and switch to the built-in file browser if that helps. Better
yet, find the bug in the GTK+ file browser and submit patches. But don't burden everyone else
with poor usability just to satisfy your absurd obsession with a boring corner case.
No, I don't want your resume. That would be even less convincing than your chest thumping
about "18 years" of writing software. Whatever your experience you've somehow managed to
avoid mastering enough of the fundamentals to understand why breaking printing functionality
for one user out of millions in a release *candidate* that delivers major performance
improvements and new features is not a catastrophe.
Firefox GTK+ Integration
> Almost no one would even notice a three order of magnitude performance improvement in an
number that's nearly zero
You should try "Open with..." sometimes. Then you'd actually understand what the fuzz is all
about here.
Firefox GTK+ Integration
I have. I use it quite often with Firefox 3 Beta 5 on a low end laptop and it's practically
instantaneous for me. I'm not sure what your problem is, but the right answer is to identify
the bug and fix it in GTK+ not to leave an inconsistent file browser as the default.
Firefox GTK+ Integration
Firefox GTK+ Integration
I suspect you're running an ancient version of GNOME and GTK+. On a Fedora 9 system browsing
/usr/bin from "Open with..." seems snappy to me even on a low end laptop. Most likely the
file magic problem you're describing got fixed some time ago. Furthermore your point about
GNOME is similarly outdated because the file browser is part of GTK+ itself these days. So
it's standard for all GTK+ applications.
Breaking printing for all users would indeed be a catastrophe (or at least it would in a final
release, which hasn't happened). But that isn't the case here. So far all we've established
is that printing is broken for one user with an unusual configuration. That's unfortunate and
certainly a stumbling block -- for you -- but it's not a major regression from the perspective
of the Firefox team and certainly doesn't indicate that the project is moving in the wrong
direction.
To argue otherwise is to expose an inflated sense of your own importance.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
There's clearly plenty of stuff broken in Firefox 3, and the "fsync seemed cheap because my OS
doesn't actually implement it /at all/" thing has beaten them up worse than they're admitting.
Here's a trivial example from the beta 5 browser in front of me. I hit "Zoom in" and it blocks
on a disk write. Hit "Zoom out" and it blocks again. In, out, in out, in, in, out out, each
time the disk blocks. Somehow, this tiny change in visual state got such a priority inside
Firefox that it needs not just to be written to permanent storage for future reference, but
actively forced to disk as an urgent priority.
The "cool feature" that's being used over and over to justify the need for yet another
database inside the Mozilla engine is that when I type a partial URL, instead of completing
the URL Firefox now needlessly searches my bookmarks, the titles of every page I've ever read,
and any other data it can get its hands on, so that it can offer ridiculous suggestions, e.g.
Previously typing L offered me various LWN URLs I'd recently visited, a Livejournal page, and
a few other things beginning with L. But now, thanks to Firefox 3's new database, I'm offered
"Garfield vs Garfield" and "JWZ Mixtape on Blogspot" because I've visited those more recently
and they have an L in them somewhere. Yes, it is that stupid.
About a dozen new hidden about:config options were introduced in the creation of this feature,
not a single one of which restores the old, well loved functionality. I've yet to decide
whether I should learn to put up with this (whereupon core Firefox devs will declare it's a
"success" even though many of their users hate it) or add to the growing numbers who've
installed a Firefox extensions solely to put it back how it was....
For most of the data the Firefox developers are offering a false dilemma. They suggest that
the alternatives are using fsync() or giving up all data integrity. In fact this applies only
because they wanted to use database structures. If you're willing to write a log structure
instead of building a database, you lose nothing. If you write both, you lose nothing, avoid
fsync() and can restore when, inevitably, the database corrupts itself without any help from
the OS or the power company.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I happen to like this new address bar feature. I use Foxmarks, which motivates me to organize
the bookmarks better, and the search through them is definitely quite useful for me.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Oh, but the feature is called `awesomebar', so it must actually *be*
awesome, right? Right?
(If it worked like it's supposed to, maybe it would be. But it doesn't, as
you say, and it isn't.)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Heh, you're bitching about the new feature I love the most :D
I hope someone will write an extension to add support for regular
expressions to the location bar. There is already one such extension for
the find
bar, but native support for both would be far more reliable.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
"""
About a dozen new hidden about:config options were introduced in the creation of this feature,
not a single one of which restores the old, well loved functionality.
"""
Have you tried the "apt-get install epiphany-browser" option? That restored my browser to
exactly the way I want it. FF is developing a very bad case of second system syndrome.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
The only reason why I'm not using epiphany-webkit at the moment is that this new version of
epiphany still doesn't support file downloading and it has some other clear problems due to
its still experimental-like state.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I'm using Epiphany 2.22.1.1 with Gecko rendering. It works great while avoiding much of the
brain-deadness of FF3 itself. For example, changing font sizes does not block on a write, and
it has a very nice and usable history system. Far superior bookmarking... without the
relational database. It's what FF should be.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Epiphany 2.22.1.1-3 in experimental has switched to webkit-only.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
My
apt-cache policy epiphany-{gecko,webkit}
doesn't agree. You can install both variants and run whichever you feel like at will.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I think the article makes it clear that Firefox is heading in the wrong direction, very much
like its predecessor Netscape. In my opinion the performance problem described is symptomatic
of a too complex product. The data storage abstraction used probably isn't the one needed.
History is linear data and I would expect it to be best stored in a log (i.e. appended), and
indexed piecemal or even on load.
But I'm not a Firefox developer so I might be missing the bigger picture here. I am however a
user, and most new features are misfeatures to me. The new history system gets all cluttered
and is useless to me. I just want to turn it off. Much like the user interface changes in 2.0
which was pretty much all for the worse. All I want is better rendering, perhaps better
performance, but above all for it to stop allocating all my memory after a while.
It seems there has been more problems around sqlite performance in Firefox. The article links
to Christopher Blizzard who describes a problem with Firefox as shipped by Red Hat: Firefox
upgraded sqlite, noticed a regression, and backed out the change. Meanwhile, Red Hat package
maintainers did not know about the regression and they shipped a faulty package.
I do find the article in question very biased towards the Firefox developer's point of view.
They would rather have their upstream release shipped in distributions. From my point of view
as a user that's not desirable for many reasons. The reason why Red Hat missed the regression
is the problem that needs to be solved, not the other way around. Why did it happend? Was it
not documented? Why did the build script even accept a library version with a known
regression?
All this points to a big closed world mentality inside Mozilla where the product is everything
and the bigger ecosystem lost. I hope that is not the case as Firefox is a very important
product and I would be sad to see it take the Netscape road.
Maybe it is time already to lose some of those hard-earned market share points? It is a real pity; as you say, all people want is a fast and lean browser which does not use all available RAM.
The road to suckiness
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Benjamin Otte (of swfdec) just wrote a pretty good blog post about why mozilla is in general
not meshing well with the rest of linux (not specific to this particular problem)
<http://www.advogato.org/person/company/diary.html?start=111>
For me, the trademark nonsense was the last straw; I use only gecko now, and am I'm looking
forward to epiphany with a webkit backend so I can remove all mozilla stuff entirely.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> For me, the trademark nonsense was the last straw; I use only gecko now,
> and am I'm looking forward to epiphany with a webkit backend so I can
> remove all mozilla stuff entirely.
This is a strange position. See if Apple will let you use the "Safari" trademark.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
You do know what "last straw" means, right?
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Tried Epiphany-browser for a while. Couldn't stand the minimalistic user interface and the
strange gnome-style UI choices (I don't use gnome). about:config is still way more
user-friednly and intiutive than gconf-editor.
Having both to look at is even worse.
Knoqueror is generally nice. But insisting on using the "text editor" to oped text pages is
annoying. There are a bunch of other small things that make it annoying. So I'm still mostly
with iceweasel (occasionally still with the iceape that has a few nicer default, but is
horrible with extensions)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> History is linear data and I would expect it to be best stored in a log
> (i.e. appended), and indexed piecemal or even on load.
Super-fast random access to history is very important. For example when a page loads we have
to be able to tell which links should be marked "visited"; if that's slow, page load time is
hurt significantly. Indexing things on load would be bad, since people often have tens of
megabytes of history data and we don't want to read it all in at startup time, since startup
time is also very important.
> All I want is better rendering, perhaps better
> performance, but above all for it to stop allocating all my memory after a
> while.
http://www.numenity.org/blog/wp-content/uploads/2008/05/p...
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Tens of megabytes of history data? And you search through all that just to properly highlight
the 'visited' links?
Geez, I don't give a rat's behind if a link I visited three years ago is properly highlighted.
Why not just limit it to the last couple of day's worth or the last 1000 entries? I mean
really, WTF?
And use a hash table.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
> Tens of megabytes of history data? And you search through all that just
> to properly highlight the 'visited' links?
>
> Geez, I don't give a rat's behind if a link I visited three years ago is
> properly highlighted.
> Why not just limit it to the last couple of day's worth or the last 1000
> entries?
Just go to Preferences ... Privacy ... "Keep my history for at least NNN days" and set that to
2 or whatever suits you.
But there are other users we need to serve who want proper link coloring with years worth of
history.
Making software for a broad audience is hard.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
>But there are other users we need to serve who want proper link coloring
> with years worth of history.
And for those two users, everyone else suffers?
> Making software for a broad audience is hard.
Only if you're trying to make "one size fits all". If there really are users out there who
want years' worth of link coloring, create an Elephant's Memory edition of Firefox (it never
forgets) with the SQL history. For everyone else use something sane.
Sure, it means maintaining two slightly different code bases (or one with #ifdefs), but that's
often easier than trying to work around the necessary compromises to meet conflicting design
goals.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
And so this with every feature? You'll create an exponential number of combinations of feature
combinations, all of which need to be tested and debugged. When you _can_ create a system that
works for everyone, it's a much better route to go. Look at the Linux processor scheduler:
instead of meekly letting everyone have his own special-purpose scheduler, none of which
worked for everyone, Linus demanded that there be one scheduler with good general-purpose
behavior. And eventually, we got the excellent scheduler we have today.
Imagine if there were a special variant of C for every type of program. Imagine if there were
types of windows that could be used for bitmap graphics, or vector graphics, but not both.
It's a combinatorial nightmare.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
>> But there are other users we need to serve who want proper link coloring
>> with years worth of history.
> And for those two users, everyone else suffers?
You know, I find it *incredibly* useful that FF3 remembers months of history. For example,
when you are about to click on a rapidshare link, it's very nice to know that you've already
downloaded the file two months ago, so that you don't use up your quota and don't incur a
two-hour timeout.
The improved history handing is one of the main reasons why I had switched from FF2 to using
FF3 nightlies.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
FWIW, this problem is not limited to Firefox. Evolution, as an example, does a disk write and
fsync on every mouse event received when you drag certain things in its interface. Speaking
for myself, I haven't noticed these problems since I installed a huge NVRAM-fronted RAID in my
desktop computer ;)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
Some people are using my libeatmydata LD_PRELOAD library (it disables fsync) to work around
the problem... however, it also removes crash-safety, so use with care.
http://www.flamingspork.com/projects/libeatmydata/
Fsyncers and curveballs (the Firefox 3 fsync() problem)
If in the unlikey event that your machine crashes, while do some mission critial web browsing,
while creating a new bookmark to an important site that you'll never remember in 5 minutes
time.
Does your world really end?
Fsyncers and curveballs (the Firefox 3 fsync() problem)
That depends on what situation you'd call the world has ended. Say, you end up with an empty
bookmark, or you cannot start firefox again unless you wipe up your .mozilla/firefox
directory?
Fsyncers and curveballs (the Firefox 3 fsync() problem)
When I first found out many years ago that fsync() under Linux doesn't sync just the file I
was rather surprised and figured it was a minor oversight that would be remedied soon. Instead
we're more than 5 years later and the problem still exists.
It was like that recent article in LWN about barriers for disk I/O. I thought "that's a rather
blunt instrument, there's probably some nicer mechanism to specify exactly which blocks depend
on which others". I was wrong, the barriers are the only way, which causes the current issues.
As a person who worked on another open-source database, I'd really like this to be finally
fixed.
Fsyncers and curveballs (the Firefox 3 fsync() problem)
From the discussion at Mike Shaver's blog on this -
http://shaver.off.net/diary/2008/05/25/fsyncers-and-curve... - it seems that this will be
fixed through a short-term FF3 patch and longer-term work on ext4 for fsync to be file-local.
For some reason O_SYNC is slower than fsync, but I still think it would be better to use O_SYNC
as it's guaranteed to be file-local and the performance should still be OK.
Use science: ask JWZ
I want to know if JWZ thinks that SQLite in FF3 is an improvement over his original history DB
in Mozilla...
k3n.
Use science: ask JWZ
Use science: ask JWZ
*Anything* is an improvement over mork. Stone tablets transferred via
RFC1149 are an improvement over mork. (It should have been called 'hork'.)
Fsyncers and curveballs (the Firefox 3 fsync() problem)
I can't blame firefox.
It seems to me that fsync is the problem. No user level program should have access to any
kind of system call that can cause this kind of performance problems. Or, at least if it is a
performance problem, it should affect the errant program and not the whole system.
So I have to put the blame on the Kernel, or maybe it it is the Unix standard.
Hopefully, this will be fixed where it needs to be fixed, which is in the Kernel.
This issue is exciting when you operate a terminal server with lots of users that use their browsers heavily. As if Flash wasn't enough of a headache, I/O stalls caused by frequent fsync() calls really do not help.
Terminal server