From f9f308250a2d77afbf3c5db6eed889bfdab99948 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 24 Jul 2019 14:08:30 +0100 Subject: 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 --- bitbake/lib/hashserv/__init__.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bitbake/lib/hashserv') diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py index 7ec9b64419..544bc86b16 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: -- cgit v1.2.3-54-g00ecf