[bitbake-devel] persist_data: Avoid fsync() calls

Submitted by Richard Purdie on May 3, 2014, 10:18 a.m. | Patch ID: 71433


Message ID 1399112313.12731.99.camel@ted
State New
Headers show

Commit Message

Richard Purdie May 3, 2014, 10:18 a.m.
If the power were to fail, it doesn't matter to us much if the data
makes it to disk or not, we'd have other problems. However an fsync()
call on a multi build autobuilder is painful so lets avoid them.

This is particularly true in this case if a timeout causes a reconnect
during a build.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Patch hide | download patch | download mbox

diff --git a/bitbake/lib/bb/persist_data.py b/bitbake/lib/bb/persist_data.py
index 994e61b..5795bc8 100644
--- a/bitbake/lib/bb/persist_data.py
+++ b/bitbake/lib/bb/persist_data.py
@@ -199,7 +199,9 @@  class PersistData(object):
         del self.data[domain][key]
 def connect(database):
-    return sqlite3.connect(database, timeout=5, isolation_level=None)
+    connection = sqlite3.connect(database, timeout=5, isolation_level=None)
+    connection.execute("pragma synchronous = off;")
+    return connection
 def persist(domain, d):
     """Convenience factory for SQLTable objects based upon metadata"""