From: Richard Purdie Date: Wed, 24 Jul 2019 13:08:30 +0000 (+0100) Subject: bitbake: hashserv: Turn off sqlite synchronous mode X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9f308250a2d77afbf3c5db6eed889bfdab99948;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: hashserv: Turn off sqlite synchronous mode We're seeing performance problems with hashserv running on a normal build system. The cause seems to be the large amounts of file IO that builds involve blocking writes to the database. Since sqlite blocks on the sync calls, this causes a significant problem. Since if we lose power we have bigger problems, run with synchronous=off to avoid locking and put the jounral into memory to avoid any write issues there too. This took writes from 120s down to negligible in my tests, which means hashserv then responds promptly to requests. (Bitbake rev: 7ae56a4d4fcf66e1da1581c70f75e30bfdf3ed83) Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py index 7ec9b64419c..544bc86b164 100644 --- a/bitbake/lib/hashserv/__init__.py +++ b/bitbake/lib/hashserv/__init__.py @@ -21,6 +21,8 @@ class HashEquivalenceServer(BaseHTTPRequestHandler): def opendb(self): self.db = sqlite3.connect(self.dbname) self.db.row_factory = sqlite3.Row + self.db.execute("PRAGMA synchronous = OFF;") + self.db.execute("PRAGMA journal_mode = MEMORY;") def do_GET(self): try: