diff --git a/benchmarks/data.js b/benchmarks/data.js index 13e11db..a743a99 100644 --- a/benchmarks/data.js +++ b/benchmarks/data.js @@ -1,39 +1,8 @@ window.BENCHMARK_DATA = { - "lastUpdate": 1769000307114, + "lastUpdate": 1769194408942, "repoUrl": "https://github.com/czlonkowski/n8n-mcp", "entries": { "n8n-mcp Benchmarks": [ - { - "commit": { - "author": { - "email": "56956555+czlonkowski@users.noreply.github.com", - "name": "Romuald Członkowski", - "username": "czlonkowski" - }, - "committer": { - "email": "noreply@github.com", - "name": "GitHub", - "username": "web-flow" - }, - "distinct": true, - "id": "fc37907348692bf46ff60286354677a59bfa98f8", - "message": "fix: resolve empty settings validation error in workflow updates (#431) (#432)", - "timestamp": "2025-11-20T19:19:08+01:00", - "tree_id": "f8f8f5774ac636412fd1d434c4671e173586056b", - "url": "https://github.com/czlonkowski/n8n-mcp/commit/fc37907348692bf46ff60286354677a59bfa98f8" - }, - "date": 1763662852189, - "tool": "customSmallerIsBetter", - "benches": [ - { - "name": "sample - array sorting - small", - "value": 0.0136, - "range": "0.3096", - "unit": "ms", - "extra": "73341 ops/sec" - } - ] - }, { "commit": { "author": { @@ -1540,6 +1509,37 @@ window.BENCHMARK_DATA = { "extra": "73341 ops/sec" } ] + }, + { + "commit": { + "author": { + "email": "56956555+czlonkowski@users.noreply.github.com", + "name": "Romuald Członkowski", + "username": "czlonkowski" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "c8c76e435d80953cdbde3fc8b86675285c555b30", + "message": "fix: critical memory leak from per-session database connections (#554)\n\n* fix: critical memory leak from per-session database connections (#542)\n\nEach MCP session was creating its own database connection (~900MB),\ncausing OOM kills every ~20 minutes with 3-4 concurrent sessions.\n\nChanges:\n- Add SharedDatabase singleton pattern - all sessions share ONE connection\n- Reduce session timeout from 30 min to 5 min (configurable)\n- Add eager cleanup for reconnecting instances\n- Fix telemetry event listener leak\n\nMemory impact: ~900MB/session → ~68MB shared + ~5MB/session overhead\n\nCo-Authored-By: Claude Opus 4.5 \nConceived by Romuald Czlonkowski - https://www.aiadvisors.pl/en\n\n* fix: resolve test failures from shared database race conditions\n\n- Fix `shutdown()` to respect shared database pattern (was directly closing)\n- Add `await this.initialized` in both `close()` and `shutdown()` to prevent\n race condition where cleanup runs while initialization is in progress\n- Add double-shutdown protection with `isShutdown` flag\n- Export `SharedDatabaseState` type for proper typing\n- Include error details in debug logs\n- Add MCP server close to `shutdown()` for consistency with `close()`\n- Null out `earlyLogger` in `shutdown()` for consistency\n\nThe CI test failure \"The database connection is not open\" was caused by:\n1. `shutdown()` directly calling `this.db.close()` which closed the SHARED\n database connection, breaking subsequent tests\n2. Race condition where `shutdown()` ran before initialization completed\n\nConceived by Romuald Członkowski - www.aiadvisors.pl/en\n\nCo-Authored-By: Claude Opus 4.5 \n\n* test: add unit tests for shared-database module\n\nAdd comprehensive unit tests covering:\n- getSharedDatabase: initialization, reuse, different path error, concurrent requests\n- releaseSharedDatabase: refCount decrement, double-release guard\n- closeSharedDatabase: state clearing, error handling, re-initialization\n- Helper functions: isSharedDatabaseInitialized, getSharedDatabaseRefCount\n\n21 tests covering the singleton database connection pattern used to prevent\n~900MB memory leaks per session.\n\nConceived by Romuald Członkowski - www.aiadvisors.pl/en\n\nCo-Authored-By: Claude Opus 4.5 \n\n---------\n\nCo-authored-by: Claude Opus 4.5 ", + "timestamp": "2026-01-23T19:51:22+01:00", + "tree_id": "3a906ff4048963c970a61034513573e40decb4d9", + "url": "https://github.com/czlonkowski/n8n-mcp/commit/c8c76e435d80953cdbde3fc8b86675285c555b30" + }, + "date": 1769194408449, + "tool": "customSmallerIsBetter", + "benches": [ + { + "name": "sample - array sorting - small", + "value": 0.0136, + "range": "0.3096", + "unit": "ms", + "extra": "73341 ops/sec" + } + ] } ] }