mirror of
https://github.com/HKUDS/LightRAG.git
synced 2025-11-13 08:34:04 +00:00
Ensure thread safety in storage update callbacks
- Added storage lock in index_done_callback - Fixed potential race conditions
This commit is contained in:
parent
7e8a2c0e9b
commit
ff9cb2138d
@ -343,6 +343,7 @@ class FaissVectorDBStorage(BaseVectorStorage):
|
||||
self._id_to_meta = {}
|
||||
|
||||
async def index_done_callback(self) -> None:
|
||||
async with self._storage_lock:
|
||||
# Check if storage was updated by another process
|
||||
if is_multiprocess and self.storage_updated.value:
|
||||
# Storage was updated by another process, reload data instead of saving
|
||||
|
||||
@ -206,6 +206,7 @@ class NanoVectorDBStorage(BaseVectorStorage):
|
||||
|
||||
async def index_done_callback(self) -> bool:
|
||||
"""Save data to disk"""
|
||||
async with self._storage_lock:
|
||||
# Check if storage was updated by another process
|
||||
if is_multiprocess and self.storage_updated.value:
|
||||
# Storage was updated by another process, reload data instead of saving
|
||||
|
||||
@ -401,6 +401,7 @@ class NetworkXStorage(BaseGraphStorage):
|
||||
|
||||
async def index_done_callback(self) -> bool:
|
||||
"""Save data to disk"""
|
||||
async with self._storage_lock:
|
||||
# Check if storage was updated by another process
|
||||
if is_multiprocess and self.storage_updated.value:
|
||||
# Storage was updated by another process, reload data instead of saving
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user