You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add standalone precompute engine to replace Arroyo streaming pipeline
Implements a single-node multi-threaded precompute engine as a new module
and binary target within QueryEngineRust. The engine ingests Prometheus
remote write samples, buffers them per-series with out-of-order handling,
detects closed tumbling/sliding windows via event-time watermarks, feeds
samples into accumulator wrappers for all existing sketch types, and emits
PrecomputedOutput directly to the store.
New modules: config, series_buffer, window_manager, accumulator_factory,
series_router, worker, output_sink, and the PrecomputeEngine orchestrator.
The binary supports embedded store + query HTTP server for single-process
deployment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Wire up DatasketchesKLL in accumulator factory and add E2E test
Handle top-level aggregation types (DatasketchesKLL, Sum, Min, Max,
etc.) directly in the factory match, fixing the fallback to Sum that
broke quantile queries. Also preserve the K parameter in
KllAccumulatorUpdater::reset() instead of hardcoding 200.
Add test_e2e_precompute binary that validates the full ingest ->
precompute -> store -> query pipeline end-to-end.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add 1000-sample batch latency test to E2E precompute test
Sends 10 series × 100 samples in a single HTTP request to the raw-mode
engine and verifies all 1000 samples land in the store. Prints client
RTT and per-series e2e_latency_us at debug level.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Add 10M-sample throughput test to E2E precompute test
Sends 1000 requests × 10000 samples (50 distinct series) to the
raw-mode engine and polls until all samples are stored. Reports both
send throughput and e2e throughput including drain time.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* update
* Fix sliding window aggregation: feed samples into all overlapping windows
Previously each sample was assigned to only one window via
window_start_for(), which is incorrect for sliding windows where
window_size > slide_interval. Added window_starts_containing() that
returns all window starts whose range covers the timestamp, and use
it in the worker aggregation loop.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: remove duplicate [[bin]] entries in Cargo.toml from rebase merge
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* style: apply cargo fmt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: use std::io::Error::other per clippy lint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: remove unnecessary cast per clippy lint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
0 commit comments