From 09b4de78f2ae6fce4d3ef1992d185ec2aa12f475 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Mon, 3 Dec 2018 21:42:32 -0600 Subject: bitbake: persist_data: Enable Write Ahead Log Enabling the write ahead log improves database reliability, speeds up writes (since they mostly happen sequentially), and speeds up readers (since they are no longer blocked by most write operations). The persistent database is very read heavy, so the auto-checkpoint size is reduced from the default (usually 1000) to 100 so that reads remain fast. [YOCTO #13030] (Bitbake rev: 79100fa67539f9654af9bf6d3e6842eb5c12e989) Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- bitbake/lib/bb/persist_data.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'bitbake') diff --git a/bitbake/lib/bb/persist_data.py b/bitbake/lib/bb/persist_data.py index 2bc3e766a9..1492792090 100644 --- a/bitbake/lib/bb/persist_data.py +++ b/bitbake/lib/bb/persist_data.py @@ -279,6 +279,11 @@ class PersistData(object): def connect(database): connection = sqlite3.connect(database, timeout=5) connection.execute("pragma synchronous = off;") + # Enable WAL and keep the autocheckpoint length small (the default is + # usually 1000). Persistent caches are usually read-mostly, so keeping + # this short will keep readers running quickly + connection.execute("pragma journal_mode = WAL;") + connection.execute("pragma wal_autocheckpoint = 100;") connection.text_factory = str return connection -- cgit v1.2.3-54-g00ecf