On 08/14/2011 01:33 PM, Tom Lane wrote:
(The changes in question were purely for performance, and involved a conversion from write barriers in the block layer to flush+fua, whatever that is.) Furthermore, this affected every filesystem not only ext4, so it really entirely fails to support Greg's argument.
FUA is "Force Unit Access", shorthand for forcing write-through. If you're staring at this from the perspective I am, where I assume that every line of new filesystem code always takes a while from release until it's stable, it still concerns me. I suspect that both of these code paths--the write barrier one and the flush+FUA one--are fine on XFS. One of the reasons XFS was so terrible in its early years was because it took a long time to get those parts in particular correct, which was complicated by how badly drives lied about everything back then.
If these changes shift around which section of the ext4 write path code are exercised, it could easily be the case that it moves fsync related work (which has been one of the buggiest parts of that filesystem) from code that has been tested heavily to parts that haven't been hit as hard yet by users. My paranoid raving about this particular bug isn't strongly supported; I'll concede that with the additional data you've provided. But I don't think it's completely unfounded either.
-- Greg Smith 2ndQuadrant US greg@xxxxxxxxxxxxxxx Baltimore, MD PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.us -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance