fix: disable write queue for SQLite, let WAL handle concurrency

With WAL mode enabled, SQLite can handle concurrent writes directly without
locking issues. Write queues introduce async race conditions where reads
happen before queued writes complete. Disable queues for SQLite and let
WAL mode handle concurrency. Keep queues enabled for other backends like
Postgres for performance optimization.
This commit is contained in:
Ashwin Bharambe 2025-11-03 14:27:15 -08:00
parent b74752dd54
commit a63e0a84d3
2 changed files with 14 additions and 0 deletions

View file

@ -48,6 +48,13 @@ class InferenceStore:
base_store = sqlstore_impl(self.reference)
self.sql_store = AuthorizedSqlStore(base_store, self.policy)
# Disable write queue for SQLite since WAL mode handles concurrency
# Keep it enabled for other backends (like Postgres) for performance
backend_config = _SQLSTORE_BACKENDS.get(self.reference.backend)
if backend_config and backend_config.type == StorageBackendType.SQL_SQLITE:
self.enable_write_queue = False
logger.debug("Write queue disabled for SQLite (WAL mode handles concurrency)")
await self.sql_store.create_table(
"chat_completions",
{

View file

@ -70,6 +70,13 @@ class ResponsesStore:
base_store = sqlstore_impl(self.reference)
self.sql_store = AuthorizedSqlStore(base_store, self.policy)
# Disable write queue for SQLite since WAL mode handles concurrency
# Keep it enabled for other backends (like Postgres) for performance
backend_config = _SQLSTORE_BACKENDS.get(self.reference.backend)
if backend_config and backend_config.type == StorageBackendType.SQL_SQLITE:
self.enable_write_queue = False
logger.debug("Write queue disabled for SQLite (WAL mode handles concurrency)")
await self.sql_store.create_table(
"openai_responses",
{