Re: [sqlite] light weight write barriers

From: Vladislav Bolkhovitin
Date: Mon Nov 12 2012 - 22:41:38 EST


Richard Hipp, on 11/02/2012 08:24 AM wrote:
SQLite cares. SQLite is an in-process, transaction, zero-configuration
database that is estimated to be used by over 1 million distinct
applications and to be have over 2 billion deployments. SQLite uses
ordinary disk files in ordinary directories, often selected by the
end-user. There is no system administrator with SQLite, so there is no
opportunity to use a dedicated filesystem with special mount options.

SQLite uses fsync() as a write barrier to assure consistency following a
power loss. In addition, we do everything we can to maximize the amount of
time after the fsync() before we actually do another write where order
matters, in the hopes that the writes will still be ordered on platforms
where fsync() is ignored for whatever reason. Even so, we believe we could
get a significant performance boost and reliability improvement if we had a
reliable write barrier.

I would suggest you to forget word "barrier" for productivity sake. You don't want barriers and confusion they bring. You want instead access to storage accelerated cache sync, commands ordering and atomic attributes/operations. See my other today's e-mail about those.

Vlad
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/