Probe close-ups

0.16.0-rc1 targeted fix-validation · flight 0.16.0-rc1@sha256:79c7907d (multi-arch INDEX, src f4f13a7cb) · connector 0.16.0-rc1 · Trino 481 · Cassandra 5.0.8 RF=3 · 3× i4i.xlarge · ~1.70M partitions/node, 2 SSTable gens · 2026-07-21

Probe A — #2679 split pruning (REGRESSED / inert)

Differential over 20 distinct point-read keys (do_get counter deltas via VictoriaMetrics), split counts from EXPLAIN ANALYZE:

ConfigSource-stage splitsdo_get/queryPods hitRows
split-pruning-enabled=true135.73 / 31 (correct)
split-pruning-enabled=false135.73 / 31 (correct)

Identical both ways. PASS threshold was 1 split for a fully-bound point read. Connector DEBUG on every query: Split pruning skipped … constraint summary binds no columns. The predicate is pushed into the handle's filterJson by applyFilter, so getSplits() sees an empty constraint.getSummary() and fail-safes to full fan-out. Correctness intact (identical row sets); the optimization never fires. → #2806.

Probe B — #2349 UDT (BLOCKED by a CQL-parser bug)

All three UDT-column shapes fail identically at the keyspace-qualified type name — before any read path runs:

list<frozen<addr>> (nested list<text>)  → FAIL at <frozen<cassandra_easy_stress.addr>>
list<frozen<simpleaddr>> (no nesting)   → FAIL at <frozen<cassandra_easy_stress.simpleaddr>>
frozen<simpleaddr> (bare scalar)         → FAIL at <cassandra_easy_stress.simpleaddr>
  invalid ddl: Schema error: Failed to parse CQL schema: Error { ... code: Char }

sstabledump confirms the data on disk is correct (u1=2 addrs, u2=1, u3=empty). The connector's cql_parser.rs parses a UDT type as a single identifier (stops at .), but Cassandra always emits the type keyspace-qualified. Every real UDT table is unreadable via Flight, which makes #2349's decode fix unreachable. → #2807.

Probe D — #2681 abort taxonomy (VERIFIED)

cqlite_errors_total by abort_reason over the soak — client_cancel dominates (driver cancels), admission_shed present, internal is the small genuine-error floor.
cqlite_errors_total by abort_reason over the soak — client_cancel dominates (driver cancels), admission_shed present, internal is the small genuine-error floor.
abort_reasoncount (soak end)how forced
client_cancel127,215kill_query + driver per-cycle cancels (category=cancelled)
admission_shed49100-thread full-SELECT-* flood > limit 64 (category=cancelled)
internal106the genuine-error SLI — 0.026% of 402,932 queries
(none, category=query)4UDT get_schema hard errors — correctly NOT tagged as an abort

snapshot_retired / superseded_split / ticket_invalid were not force-tested (infeasible in a short probe / no in-field trigger via Trino); none surfaced under the sustained soak either.

Snapshot hygiene — background grace-sweep (claim-4 class)

At soak end 312 cqlite- snapshots/node; after +6min quiet with zero queries, 312→172/node on the background sweep alone (the R12 query-triggered regression stays fixed). 172/node is within the documented bound (retire-grace / reuse-window = 600000/3000 = 200 per table per host) — bounded retention by design, not a leak; would clear at the 6h TTL backstop if idle.