forked from apache/cassandra-python-driver
-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Description
Overview
This issue tracks open PRs that improve general driver performance — query planning, metadata parsing, memory layout, and row decoding — excluding vector-specific optimizations already tracked in #746.
All PRs listed here are by @mykaul.
Directly performance-related PRs
HIGH priority
| PR | Title | Area | Measured Impact |
|---|---|---|---|
| #651 | Query planning policy optimization | Query planning | 2.3x–6.4x faster policy decisions |
| #745 | Metadata schema parsing optimizations | Schema parsing | 1.98x faster full pipeline, 5.7x memory reduction per row |
| #740 | namedtuple factory caching | Row decoding | 135x faster class creation, 3.7x end-to-end |
MEDIUM priority
| PR | Title | Area | Measured Impact |
|---|---|---|---|
| #659 | slots on connection/protocol frame classes | Memory | ~5-7x memory reduction per frame instance |
| #630 | column_encryption_policy fast-path check | Row decoding | Eliminates per-cell branch when encryption is unused |
LOW-MEDIUM priority
| PR | Title | Area | Measured Impact |
|---|---|---|---|
| #629 | Remove TRIGGERS query for ScyllaDB | Schema refresh | 1 fewer CQL round-trip per schema refresh |
Test infrastructure
| PR | Title | Area |
|---|---|---|
| #653 | Query planning benchmarks | Benchmarks for #651 |
Proposed merge order
The PRs have minimal interdependencies. Suggested order based on risk and impact:
| Order | PR | Rationale |
|---|---|---|
| 1 | #653 | Benchmark infrastructure - no functional changes, enables measuring #651 |
| 2 | #651 | Query planning - high impact, self-contained |
| 3 | #629 | Remove TRIGGERS - small, low-risk |
| 4 | #630 | Encryption fast-path - small, low-risk |
| 5 | #740 | namedtuple caching - high impact, touches row factory |
| 6 | #745 | Metadata parsing - high impact, touches metadata.py extensively |
| 7 | #659 | slots on frames - medium impact, touches connection/protocol classes |
Relationship to #746
Issue #746 tracks vector search (VectorType) performance PRs. Some PRs in #746 benefit general workloads too (e.g., #734 remove copies on read path, #742 ParseDesc caching, #741 deserializer caching, #743 UTF8 decode). Those are tracked in #746 and not duplicated here.
Together, #746 and this issue cover all open performance-related PRs in the repository.
Reactions are currently unavailable