From b1e47d9e0d14c8acc2826fea1ae345c8c5983a0f Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Tue, 9 Sep 2025 18:15:33 +0200 Subject: [PATCH] feat: Add small pool for PostgreSQL connections to allow multiple docker instances communicating with PostgreSQL --- .../databases/relational/sqlalchemy/SqlAlchemyAdapter.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index 1b2b974cf..2c2b4b02d 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -12,7 +12,6 @@ from sqlalchemy import NullPool, text, select, MetaData, Table, delete, inspect from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker from cognee.modules.data.models.Data import Data -from cognee.modules.sync.models.SyncOperation import SyncOperation from cognee.shared.logging_utils import get_logger from cognee.infrastructure.utils.run_sync import run_sync from cognee.infrastructure.databases.exceptions import EntityNotFoundError @@ -58,7 +57,11 @@ class SQLAlchemyAdapter: ) else: self.engine = create_async_engine( - connection_string, pool_size=12, max_overflow=12, poolclass=None + connection_string, + pool_size=1, # one physical session per container + max_overflow=1, + pool_recycle=280, # keep below RDS 300 s idle kill + pool_pre_ping=True, ) self.sessionmaker = async_sessionmaker(bind=self.engine, expire_on_commit=False)