-
Notifications
You must be signed in to change notification settings - Fork 715
perf: use datafusion native listingtable #9259
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
Conversation
|
Failed to generate code suggestions for PR |
Auto-generated translation updates from English source file. 🤖 Generated with automated translation workflow
…openobserve into datafusion-schema-evolution
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.
Pull request overview
This pull request refactors the search infrastructure to use DataFusion's native ListingTable instead of a custom implementation. The PR removes the manual schema version grouping logic and delegates schema evolution to DataFusion's DefaultSchemaAdapterFactory. Key architectural changes include:
- Replacing custom
NewListingTablewith a newListingTableAdapterwrapper - Using DataFusion's native schema evolution capabilities
- Simplifying file handling by removing schema version-based file grouping
- Optimizing memory usage by using
Arc<BitVec>for segment IDs instead of cloning
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/service/search/grpc/wal.rs |
Removed schema version grouping logic; simplified to single table creation |
src/service/search/grpc/storage.rs |
Removed schema version handling; streamlined file processing |
src/service/search/grpc/utils.rs |
Deleted file containing UTF8 view schema conversion utility |
src/service/search/grpc/mod.rs |
Removed utils module reference |
src/service/search/datafusion/table_provider/parquet_reader.rs |
Deleted custom parquet reader implementation |
src/service/search/datafusion/table_provider/mod.rs |
Removed custom NewListingTable implementation and related helper functions |
src/service/search/datafusion/table_provider/listing_adapter.rs |
Added new adapter wrapping DataFusion's ListingTable with index condition handling |
src/service/search/datafusion/table_provider/helpers.rs |
Cleaned up by removing unused helper functions |
src/service/search/datafusion/table_provider/memtable.rs |
Updated imports to use helpers from new location |
src/service/search/datafusion/storage/file_list.rs |
Changed to use Arc<BitVec> to avoid cloning segment IDs |
src/service/search/datafusion/mod.rs |
Removed file_type module reference |
src/service/search/datafusion/file_type.rs |
Deleted custom file type enum |
src/service/search/datafusion/exec.rs |
Simplified TableBuilder by removing schema diff rules and optimization flags |
src/service/promql/search/grpc/storage.rs |
Updated to use new simplified register_table signature |
src/service/file_list_dump.rs |
Changed signature to pass files by value |
src/service/compact/merge.rs |
Removed schema diff generation logic; simplified to single table creation |
src/job/files/parquet.rs |
Updated to use simplified TableBuilder API |
src/config/src/meta/stream.rs |
Changed segment_ids field to use Arc<BitVec> |
web/src/locales/languages/*.json |
Added translations for new UI features (insights, alerts, pipeline types) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
DefaultSchemaAdapterFactoryto do schema evolutionListingAdapterto do index fallback logicalListingAdapterCachedParquetFileReaderFactory