--- No, SQLite does not. On COMMIT it fsyncs the database file and unlinks the journal[1], but does not fsync the directory. ---
Since that can cause the last transaction to be lost, despite Sqlite returning a 'Commit successful' code to the application, doesn't that mean that Sqlite is _not_ truly 'Durable' (per ACID)? Best regards Sent from my BlackBerry? smartphone on O2 -----Original Message----- From: Rowan Worth <row...@dugeo.com> Sender: sqlite-users-bounces at mailinglists.sqlite.orgDate: Mon, 1 Feb 2016 10:35:34 To: SQLite mailing list<sqlite-users at mailinglists.sqlite.org> Reply-To: SQLite mailing list <sqlite-users at mailinglists.sqlite.org> Subject: Re: [sqlite] Bug: Successfully committed transaction rolled back after power failure On 31 January 2016 at 03:56, James K. Lowden <jklowden at schemamania.org> wrote: > Surely SQLite does both -- fsync on file and directory -- as part of a > commit. That's not in doubt, is it? > No, SQLite does not. On COMMIT it fsyncs the database file and unlinks the journal[1], but does not fsync the directory. This is demonstrated by the logs in Stefan's initial post, and indeed the purpose of his patch was to introduce an fsync on the directory after unlinking the journal. [1] with the default PRAGMA journal_mode=delete, obviously -Rowan _______________________________________________ sqlite-users mailing list sqlite-users at mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users