Skip to content

test: E2E throughput/latency tests + sliding window bug fix#229

Merged
milindsrivastava1997 merged 10 commits intomainfrom
pr/B-e2e-tests-sliding-window-fix
Apr 1, 2026
Merged

test: E2E throughput/latency tests + sliding window bug fix#229
milindsrivastava1997 merged 10 commits intomainfrom
pr/B-e2e-tests-sliding-window-fix

Conversation

@zzylol
Copy link
Copy Markdown
Contributor

@zzylol zzylol commented Mar 25, 2026

Summary

  • Adds 1000-sample batch latency test to E2E precompute test
  • Adds 10M-sample throughput stress test (multi-threaded data generation)
  • Fixes critical sliding window bug: samples were only fed into the first matching window instead of all overlapping windows

This is PR B of 6 stacked PRs splitting #162

Stacking order:

  • PR A → main: Core engine (merge first)
  • PR B (this) → PR A: E2E tests + sliding window fix
  • PR C → PR B: Multi-connector ingest + pane-based sliding window
  • PR D → PR C: Benchmarks + scalability tests
  • PR E → PR D: Correctness tests + comparison test
  • PR F → PR E: Refactoring + benchmarking binary

Test plan

  • cargo run --bin test_e2e_precompute runs latency and throughput tests to completion
  • Sliding window test confirms samples feed into all overlapping windows

🤖 Generated with Claude Code

@zzylol zzylol force-pushed the pr/B-e2e-tests-sliding-window-fix branch from bf87a83 to a49117e Compare March 25, 2026 11:32
@zzylol zzylol force-pushed the pr/A-precompute-engine-core branch from eeba11e to 8af309b Compare March 28, 2026 19:13
Base automatically changed from pr/A-precompute-engine-core to main March 31, 2026 19:08
zzylol and others added 6 commits March 31, 2026 14:32
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>
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>
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>
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>
…dows

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>
@zzylol zzylol force-pushed the pr/B-e2e-tests-sliding-window-fix branch from a49117e to 685655e Compare March 31, 2026 20:09
zzylol and others added 4 commits March 31, 2026 15:11
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@milindsrivastava1997 milindsrivastava1997 merged commit 8028dba into main Apr 1, 2026
4 checks passed
@milindsrivastava1997 milindsrivastava1997 deleted the pr/B-e2e-tests-sliding-window-fix branch April 1, 2026 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants