Add bounded live retention for UI and API caches
- Introduce configurable hot-window and pinned evidence retention - Keep live evidence available after eviction with fetch-on-miss hydration - Add tests and docs for the new retention settings
This commit is contained in:
parent
32aae200c3
commit
a45d5c85f6
7 changed files with 769 additions and 537 deletions
|
|
@ -678,6 +678,10 @@ const run = async () => {
|
|||
|
||||
const liveState = new LiveStateManager(clickhouse, redis);
|
||||
await liveState.hydrate();
|
||||
const liveStateMetricsTimer = setInterval(() => {
|
||||
const snapshot = liveState.getStatsSnapshot();
|
||||
logger.info("live cache metrics", snapshot);
|
||||
}, 60000);
|
||||
|
||||
const subscribeWithReset = async <T>(
|
||||
subject: string,
|
||||
|
|
@ -1475,6 +1479,7 @@ const run = async () => {
|
|||
state.shutdownPromise = (async () => {
|
||||
logger.info("service stopping", { signal });
|
||||
server.stop();
|
||||
clearInterval(liveStateMetricsTimer);
|
||||
|
||||
if (redis && redis.isOpen) {
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue