query_precomputed_output function of single_map_store.rs will often loose the last tumbling window of precompute result when the query time is too close to the end of the last tumbling window to avoid the precomputation of the newest window be installed in SimpleMapStore.
This is particularly serious for spatial-only queries. Since their query time period is only one tumbling window. If this is lost, we will loose all our precomputation.
Following is a log illustration for this problem
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548067Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:410: OnlySpatial query: Aligning end_timestamp from 1762108321520 to 1762108320000 using scrape interval of 10 seconds
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548072Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:429: [LATENCY] Timestamp calculations: 0.02ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548078Z DEBUG promql_utilities::query_logics::parsing: /code/CommonDependencies/dependencies/rs/promql_utilities/src/query_logics/parsing.rs:57: Computing statistics for pattern type OnlySpatial
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548084Z DEBUG promql_utilities::query_logics::parsing: /code/CommonDependencies/dependencies/rs/promql_utilities/src/query_logics/parsing.rs:74: Found statistic to compute: topk
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548093Z DEBUG promql_utilities::query_logics::enums: /code/CommonDependencies/dependencies/rs/promql_utilities/src/query_logics/enums.rs:96: FromStr trait parsing Statistic: topk
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548100Z DEBUG promql_utilities::query_logics::enums: /code/CommonDependencies/dependencies/rs/promql_utilities/src/query_logics/enums.rs:73: Parsing Statistic from string: topk
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548109Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:513: Extracted k value: Some("5")
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548118Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:527: [LATENCY] Statistics and query arguments setup: 0.04ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548124Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:597: [LATENCY] Aggregation configuration processing: 0.00ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548133Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:602: Querying store for metric: node_cpu_seconds_total, aggregation_id: 7, time range: 1762108310000 - 1762108320000
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548147Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:258: Tumbling window range 1762108300000-1762108310000
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548161Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:259: Request window range 1762108310000-1762108320000
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548170Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:258: Tumbling window range 1762108290000-1762108300000
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548178Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:259: Request window range 1762108310000-1762108320000
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548187Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:276: Range scanning took: 0.04ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548194Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:282: Total query took: 0.05ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548214Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:287: Found 0 entries for query on node_cpu_seconds_total (aggregation_id: 7, start: 1762108310000, end: 1762108320000)
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548223Z DEBUG query_engine_rust::stores::simple_map_store: src/stores/simple_map_store.rs:291: Found 0 unique keys
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548229Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:624: Store query took: 0.09ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548234Z INFO query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:637: No precomputed outputs found for metric: node_cpu_seconds_total
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548240Z DEBUG query_engine_rust::engines::simple_engine: src/engines/simple_engine.rs:302: Total query handling took: 27.78ms
sketchdb-queryengine-rust | 2025-11-02T18:32:01.548264Z DEBUG query_engine_rust::drivers::http_server: src/drivers/http_server.rs:253: === QUERY ENGINE RETURNED NONE ===
query_precomputed_outputfunction ofsingle_map_store.rswill often loose the last tumbling window of precompute result when the query time is too close to the end of the last tumbling window to avoid the precomputation of the newest window be installed inSimpleMapStore.This is particularly serious for spatial-only queries. Since their query time period is only one tumbling window. If this is lost, we will loose all our precomputation.
Following is a log illustration for this problem