Skip to content

Read job status/results directly from SQLite, bypass collector ZMQ#317

Merged
JasonWildMe merged 1 commit into
mainfrom
direct-job-status-reads
Mar 20, 2026
Merged

Read job status/results directly from SQLite, bypass collector ZMQ#317
JasonWildMe merged 1 commit into
mainfrom
direct-job-status-reads

Conversation

@JasonWildMe
Copy link
Copy Markdown
Contributor

All 5 read-only methods on JobInterface (get_job_status, get_job_status_dict, get_job_metadata, get_job_result, get_job_id_list) now read directly from the SQLite job store instead of sending ZMQ messages to the single-threaded collector subprocess. This eliminates the collector as a serialization bottleneck for web threads.

Each Gunicorn thread gets its own SQLite connection via threading.local(), enabling fully concurrent reads under WAL mode while the collector continues to handle writes from the engine.

All 5 read-only methods on JobInterface (get_job_status,
get_job_status_dict, get_job_metadata, get_job_result,
get_job_id_list) now read directly from the SQLite job store
instead of sending ZMQ messages to the single-threaded collector
subprocess. This eliminates the collector as a serialization
bottleneck for web threads.

Each Gunicorn thread gets its own SQLite connection via
threading.local(), enabling fully concurrent reads under WAL mode
while the collector continues to handle writes from the engine.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@JasonWildMe JasonWildMe requested a review from LashaO March 13, 2026 17:17
@JasonWildMe JasonWildMe self-assigned this Mar 13, 2026
@JasonWildMe JasonWildMe merged commit 0ea730f into main Mar 20, 2026
4 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant