-
Notifications
You must be signed in to change notification settings - Fork 246
Implement cached schema & variant materialized views for luminork #6938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jhelwig
merged 2 commits into
main
from
jhelwig/eng-3182-get-access-to-installed-uninstalled-schema-variants-in
Aug 20, 2025
Merged
Implement cached schema & variant materialized views for luminork #6938
jhelwig
merged 2 commits into
main
from
jhelwig/eng-3182-get-access-to-installed-uninstalled-schema-variants-in
Aug 20, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Dependency Review✅ No vulnerabilities or OpenSSF Scorecard issues found.Scanned FilesNone |
|
1 similar comment
|
e230398
to
2d896dc
Compare
|
1 similar comment
|
918d1e5
to
8439563
Compare
|
8439563
to
c943635
Compare
|
c943635
to
93b793f
Compare
|
93b793f
to
a6eed41
Compare
|
…ions Add HasUniqueId trait providing unified function ID access across all function spec types. This eliminates repetitive implementation patterns while maintaining zero-allocation semantics through Option<&str> returns. The trait enables consistent function collection logic with shared error handling for invalid function IDs, stable materialized view output through deterministic ordering, and deduplication of collected function identifiers. Management functions always return Some() while other function types delegate to their unique_id fields. Both spec/ and pkg/ module implementations follow the same patterns for consistency. Testing covers all trait implementations with direct unit tests for each function type including edge cases for invalid UUIDs and error propagation paths.
a6eed41
to
692f01f
Compare
|
692f01f
to
4b14d0a
Compare
|
4b14d0a
to
6973e41
Compare
|
This change establishes the foundation for materialized views (MVs) that provide cached access to schema and variant data from uninstalled packages. The implementation uses the MV building pattern established by the change set MVs and supports graceful fallback chains in API endpoints. Key components: - CachedSchema and CachedDefaultVariant MV types for schema metadata access - Deployment MV discovery system with direct key lookup in content- addressable store vs O(nm) traversal through layers - JoinSet task scheduling for parallel MV building in edda-server - Luminork API endpoints updated with MV-first lookups and DAL fallbacks - Function collection system with error handling for variant data assembly The MV system enables efficient access to schema information without requiring full package installation, supporting API integrations and MCP servers.
6973e41
to
0cdc002
Compare
|
@jhelwig on the luminork side this is great! |
fnichol
approved these changes
Aug 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Live code reviewed and looks great!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-buck2-resources
A-bytes-lines-codec
A-config-file
A-cyclone
Area: Function execution engine [Rust]
A-dal
A-dal-test
A-edda
A-forklift
A-luminork
A-module-index
A-nats-subscriber
A-object-tree
A-pinga
A-rebaser
A-sdf
Area: Primary backend API service [Rust]
A-si-data-nats
A-si-data-pg
A-si-layer-cache
A-si-pkg
A-si-pool-noodle
A-si-posthog-rs
A-si-settings
Area: Backend service settings management [Rust]
A-si-std
A-si-test-macros
A-telemetry-application-rs
A-telemetry-rs
A-veritech
Area: Task execution backend service [Rust]
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements materialized views (MVs) for cached access to schema and variant data from uninstalled packages, enabling efficient schema information retrieval without requiring full package installation.
Add trait-based function collection system - HasUniqueId trait provides unified function ID access across all function spec types, eliminating repetitive patterns while maintaining zero-allocation semantics through Option<&str> returns
Implement cached schema MV infrastructure - Uses the MV building pattern established by the change set MVs with deployment MV discovery system providing direct key lookup in content-addressable store vs O(nm) traversal through layers
Update Luminork API endpoints - Maintain current behavior of looking up from the graph first, but instead of 404ing if the schema/variant isn't found, check to see if there is an MV. If there is one, return it. If there isn't one, check to see if there should be one by consulting the cached_modules table. If there should be one, return a 202 and trigger a build. If not, return a 404.
Add parallel MV building - JoinSet task scheduling in edda-server with function collection system providing error handling for variant data assembly
Test plan