63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# Query And Indexing
|
|
|
|
## Purpose And Business Outcome
|
|
|
|
Deliver predictable query correctness and performance using expression translation with index-aware execution.
|
|
|
|
## Scope And Non-Goals
|
|
|
|
Scope:
|
|
- LINQ query translation
|
|
- Primary and secondary index usage
|
|
- Scan fallback where index optimization is not applicable
|
|
|
|
Non-goals:
|
|
- Full SQL compatibility
|
|
- Distributed query federation
|
|
|
|
## User And System Workflows
|
|
|
|
1. Consumer submits LINQ expression.
|
|
2. Query planner evaluates index opportunities.
|
|
3. Engine executes index-backed or scan path.
|
|
4. Results are materialized to consumer entities.
|
|
|
|
## Interfaces And APIs
|
|
|
|
- `AsQueryable()` and query provider components
|
|
- `CollectionIndexManager`
|
|
- Index implementations under `src/CBDD.Core/Indexing`
|
|
|
|
## Permissions And Data Handling
|
|
|
|
- Query access follows host application authorization policy.
|
|
- Indexed data inherits the same sensitivity classification as source payloads.
|
|
|
|
## Dependencies And Failure Modes
|
|
|
|
Dependencies:
|
|
- Valid index metadata and storage consistency
|
|
- Expression visitor correctness
|
|
|
|
Failure modes:
|
|
- Incorrect predicate translation
|
|
- Missing/ineffective indexes
|
|
- Performance regressions due to scan-heavy paths
|
|
|
|
## Monitoring, Alerts, And Troubleshooting
|
|
|
|
- Track query-related regressions in automated tests.
|
|
- Use [`../runbook.md`](../runbook.md) for incident handling.
|
|
- Follow [`../security.md`](../security.md) for sensitive data and access constraints.
|
|
- Use [`../troubleshooting.md`](../troubleshooting.md#query-and-index-issues) for remediation.
|
|
|
|
## Rollout And Change Considerations
|
|
|
|
- Query planner/index behavior changes require benchmark comparison and regression coverage.
|
|
- Document breaking semantics in release notes.
|
|
|
|
## Validation Guidance
|
|
|
|
- Run query, index, and optimizer test suites in `tests/CBDD.Tests`.
|
|
- Confirm coverage gate with `bash scripts/coverage-check.sh`.
|