[bitbake-devel] [PATCH] prserv/db: Avoid fsync() calls

Mark Hatle mark.hatle at windriver.com
Sat May 3 16:12:51 UTC 2014


On 5/3/14, 3:18 AM, Richard Purdie wrote:
> 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.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> diff --git a/bitbake/lib/prserv/db.py b/bitbake/lib/prserv/db.py
> index 86eafe3..49f36da 100644
> --- a/bitbake/lib/prserv/db.py
> +++ b/bitbake/lib/prserv/db.py
> @@ -220,6 +220,7 @@ class PRData(object):
>                   raise e
>           self.connection=sqlite3.connect(self.filename, isolation_level="EXCLUSIVE", check_same_thread = False)
>           self.connection.row_factory=sqlite3.Row
> +        self.connection.execute("pragma synchronous = off;")
>           self._tables={}
>
>       def __del__(self):
>
>

Does the prserver make any noticeable difference?  This may be the one case 
where I could see an fsync being desired.  If you are serving remote machines, 
once you've requested a PR, the number should be stored to disk so that it will 
be the same one that comes back again.  ... but I can easily see that in the 
middle of a build, when the PR server is on the same machine (and not shared) 
this could cause enough slow down to justify turning off the fsync.

--Mark



More information about the bitbake-devel mailing list