perf: route session store writes through writer queue

This commit is contained in:
Peter Steinberger
2026-05-02 12:33:03 +01:00
parent ffc79532b8
commit b4437047f4
32 changed files with 497 additions and 395 deletions

View File

@@ -25,7 +25,7 @@ type WorkerPluginRuntimeHelpers = {
type WorkerCleanupHelpers = {
clearSessionStoreCaches: typeof import("../src/config/sessions/store-cache.js").clearSessionStoreCaches;
drainFileLockStateForTest: typeof import("../src/infra/file-lock.js").drainFileLockStateForTest;
drainSessionStoreLockQueuesForTest: typeof import("../src/config/sessions/store-lock-state.js").drainSessionStoreLockQueuesForTest;
drainSessionStoreWriterQueuesForTest: typeof import("../src/config/sessions/store-writer-state.js").drainSessionStoreWriterQueuesForTest;
drainSessionWriteLockStateForTest: typeof import("../src/agents/session-write-lock.js").drainSessionWriteLockStateForTest;
resetContextWindowCacheForTest: typeof import("../src/agents/context-runtime-state.js").resetContextWindowCacheForTest;
resetFileLockStateForTest: typeof import("../src/infra/file-lock.js").resetFileLockStateForTest;
@@ -80,8 +80,8 @@ function loadWorkerCleanupHelpers(): Promise<WorkerCleanupHelpers> {
vi.importActual<typeof import("../src/config/sessions/store-cache.js")>(
"../src/config/sessions/store-cache.js",
),
vi.importActual<typeof import("../src/config/sessions/store-lock-state.js")>(
"../src/config/sessions/store-lock-state.js",
vi.importActual<typeof import("../src/config/sessions/store-writer-state.js")>(
"../src/config/sessions/store-writer-state.js",
),
vi.importActual<typeof import("../src/infra/file-lock.js")>("../src/infra/file-lock.js"),
]).then(
@@ -90,12 +90,13 @@ function loadWorkerCleanupHelpers(): Promise<WorkerCleanupHelpers> {
modelsConfigState,
sessionWriteLock,
sessionStoreCache,
sessionStoreLockState,
sessionStoreWriterState,
fileLock,
]) => ({
clearSessionStoreCaches: sessionStoreCache.clearSessionStoreCaches,
drainFileLockStateForTest: fileLock.drainFileLockStateForTest,
drainSessionStoreLockQueuesForTest: sessionStoreLockState.drainSessionStoreLockQueuesForTest,
drainSessionStoreWriterQueuesForTest:
sessionStoreWriterState.drainSessionStoreWriterQueuesForTest,
drainSessionWriteLockStateForTest: sessionWriteLock.drainSessionWriteLockStateForTest,
resetContextWindowCacheForTest: contextRuntimeState.resetContextWindowCacheForTest,
resetFileLockStateForTest: fileLock.resetFileLockStateForTest,
@@ -393,14 +394,14 @@ afterEach(async () => {
const {
clearSessionStoreCaches,
drainFileLockStateForTest,
drainSessionStoreLockQueuesForTest,
drainSessionStoreWriterQueuesForTest,
drainSessionWriteLockStateForTest,
resetContextWindowCacheForTest,
resetFileLockStateForTest,
resetModelsJsonReadyCacheForTest,
resetSessionWriteLockStateForTest,
} = await loadWorkerCleanupHelpers();
await drainSessionStoreLockQueuesForTest();
await drainSessionStoreWriterQueuesForTest();
clearSessionStoreCaches();
await drainFileLockStateForTest();
await drainSessionWriteLockStateForTest();