From: Sarah Hoffmann Date: Sat, 8 Jul 2023 17:38:54 +0000 (+0200) Subject: force a fixed pool size and make it configurable X-Git-Tag: v4.3.0~55^2~1 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/f4cdcb995c576313b32ab268ee246c627b25d11b force a fixed pool size and make it configurable --- diff --git a/nominatim/api/core.py b/nominatim/api/core.py index 2a19d974..32d420db 100644 --- a/nominatim/api/core.py +++ b/nominatim/api/core.py @@ -54,6 +54,7 @@ class NominatimAPIAsync: return dsn = self.config.get_database_params() + pool_size = self.config.get_int('API_POOL_SIZE') query = {k: v for k, v in dsn.items() if k not in ('user', 'password', 'dbname', 'host', 'port')} @@ -65,6 +66,7 @@ class NominatimAPIAsync: host=dsn.get('host'), port=int(dsn['port']) if 'port' in dsn else None, query=query) engine = sa_asyncio.create_async_engine(dburl, future=True, + max_overflow=0, pool_size=pool_size, echo=self.config.get_bool('DEBUG_SQL')) try: diff --git a/settings/env.defaults b/settings/env.defaults index 9c2f7cac..f9f590da 100644 --- a/settings/env.defaults +++ b/settings/env.defaults @@ -209,6 +209,11 @@ NOMINATIM_POLYGON_OUTPUT_MAX_TYPES=1 # under .php NOMINATIM_SERVE_LEGACY_URLS=yes +# Maximum number of connection a single API object can use. (Python API only) +# When running Nominatim as a server, then this is the maximum number +# of connections _per worker_. +NOMINATIM_API_POOL_SIZE=10 + ### Log settings # # The following options allow to enable logging of API requests.