From: Sarah Hoffmann Date: Sat, 30 May 2020 09:20:16 +0000 (+0200) Subject: Disable JIT and parallel workers when indexing X-Git-Tag: v3.5.0~4^2~1 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/cca366196d0180d45ec733ea60e44b905bc97260?ds=inline Disable JIT and parallel workers when indexing Locally disable jit and parallel workers in the connection that do indexing. The query planner tends to be overenthusiatic about using JIT. But with the rather less complex queries we have, the overhead tends to be larger than the performance gain. Fixes #1677. --- diff --git a/nominatim/nominatim.py b/nominatim/nominatim.py index 3e9c2f16..b29bf343 100755 --- a/nominatim/nominatim.py +++ b/nominatim/nominatim.py @@ -124,6 +124,15 @@ class DBConnection(object): self.wait() self.cursor = self.conn.cursor() + # Disable JIT and parallel workers as they are known to cause problems. + # Update pg_settings instead of using SET because it does not yield + # errors on older versions of Postgres where the settings are not + # implemented. + self.perform( + """ UPDATE pg_settings SET setting = -1 WHERE name = 'jit_above_cost'; + UPDATE pg_settings SET setting = 0 + WHERE name = 'max_parallel_workers_per_gather';""") + self.wait() def wait(self): """ Block until any pending operation is done.