diff --git a/cognee/tasks/storage/index_data_points.py b/cognee/tasks/storage/index_data_points.py index 2813d9c54..35e8c970c 100644 --- a/cognee/tasks/storage/index_data_points.py +++ b/cognee/tasks/storage/index_data_points.py @@ -1,9 +1,11 @@ +import asyncio from cognee.shared.logging_utils import get_logger from cognee.infrastructure.databases.exceptions.EmbeddingException import EmbeddingException from cognee.infrastructure.databases.vector import get_vector_engine from cognee.infrastructure.engine import DataPoint +vector_index_lock = asyncio.Lock() logger = get_logger("index_data_points") @@ -22,9 +24,10 @@ async def index_data_points(data_points: list[DataPoint]): index_name = f"{data_point_type.__name__}_{field_name}" - if index_name not in created_indexes: - await vector_engine.create_vector_index(data_point_type.__name__, field_name) - created_indexes[index_name] = True + async with vector_index_lock: + if index_name not in created_indexes: + await vector_engine.create_vector_index(data_point_type.__name__, field_name) + created_indexes[index_name] = True if index_name not in index_points: index_points[index_name] = []