Skip to content

Add concurrent transactional Query RMW SLO workload - #922

Open
KirillKurdyukov wants to merge 1 commit into
fix/slo-kv-checks-20261014from
feat/slo-kv-rmw-20261014
Open

KirillKurdyukov wants to merge 1 commit into
fix/slo-kv-checks-20261014from
feat/slo-kv-rmw-20261014

Conversation

@KirillKurdyukov

Copy link
Copy Markdown
Contributor

Dependency

Depends on #921 and targets fix/slo-kv-checks-20261014, so this review contains
only the new RMW scenario, not the basic-KV fixes or historical QA changes.

Changes

  • Add a separate async Query RMW scenario to the existing SLO workflow and
    entrypoint. Other adapters, basic KV and Topic remain unchanged.
  • Run contended serializable transactions with stable operation IDs and an
    atomic ledger/counter update. Exact replay cannot increment twice.
  • Settle admitted operations, then independently verify every expected
    operation/payload and each counter's value/version.
  • Preserve the original final SDK cause, existing retry policies and legacy
    metrics. Technical attempts include session acquisition before the callback.
  • Own one UUID table namespace for the whole lifecycle and clean up only
    acknowledged creations.

Verification

  • 261 SDK/control/RMW tests passed; 23 RMW/control cases independently rerun.
  • Black, pytest-flake8, repository mypy, shell syntax and whitespace passed.
    Mypy covers the existing SDK target, not the SLO harness.
  • Two concurrent real entrypoint processes passed with distinct private
    tables: 12 logical writes and 30 SDK attempts each. The real OTLP receiver
    confirmed logical/attempt counters, pending zero and client HDR percentiles.
  • Real SIGTERM/replay stayed successful. Actual sum-preserving corruption,
    coherent ledger/counter deletion, wrong version/payload and a final SDK
    error each failed the process.
  • After a real successful commit, a separate driver confirmed persistence
    before its raw response was withheld from the transaction wrapper.
    Undetermined recovery used the same ID, two attempts and one replay, with
    unchanged exact persisted state. This is SDK response-boundary fault
    evidence, not a physically dropped network packet.

Acceptance boundary

Hosted SLO and the final Linux current/baseline image pair remain unverified.
The existing SLO label gate is unchanged. No old green run is reused as proof.
Concurrent same-ref telemetry uses the already-supported unique
SLO_INSTANCE_ID; the existing default-instance collision is not claimed fixed.
Passing tests retain existing SDK warnings. No SDK libraries, dependencies,
retry limits/backoff/deadlines, metrics definitions or Dockerfiles changed.

@codecov

codecov Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.69%. Comparing base (a8e2ae1) to head (119131a).

Additional details and impacted files

Impacted file tree graph

@@                     Coverage Diff                     @@
##           fix/slo-kv-checks-20261014     #922   +/-   ##
===========================================================
  Coverage                       82.69%   82.69%           
===========================================================
  Files                              99       99           
  Lines                           12961    12961           
  Branches                         1269     1269           
===========================================================
  Hits                            10718    10718           
  Misses                           1793     1793           
  Partials                          450      450           
Flag Coverage Δ
integration 80.47% <ø> (ø)
unit 49.21% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

This branch has not been deployed

No deployments
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.

1 participant