]> git.openstreetmap.org Git - nominatim.git/commitdiff
force a fixed pool size and make it configurable
authorSarah Hoffmann <lonvia@denofr.de>
Sat, 8 Jul 2023 17:38:54 +0000 (19:38 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 8 Jul 2023 22:31:53 +0000 (00:31 +0200)
nominatim/api/core.py
settings/env.defaults

index 2a19d97442cc46cf6870b213117cecc7ff65988d..32d420dbb84f4325cfb31c5a8761fb70c4e28144 100644 (file)
@@ -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:
index 9c2f7cac18da3636b445663627dd400a7683848c..f9f590da65fb50156d1f3139403d7a9cba4a59c6 100644 (file)
@@ -209,6 +209,11 @@ NOMINATIM_POLYGON_OUTPUT_MAX_TYPES=1
 # under <endpoint>.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.