Add foundational classes for storage support for multi-format data support - #20943
Conversation
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 26730f3.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
PR Reviewer Guide 🔍(Review updated until commit b6ff89e)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to b6ff89e Explore these optional code suggestions:
Previous suggestionsSuggestions up to commit f527540
Suggestions up to commit f527540
|
|
❌ Gradle check result for 7b78eb2: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 06a95d4.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
|
Persistent review updated to latest commit 06a95d4 |
|
❌ Gradle check result for 06a95d4: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 13f8caa.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 2cdae95.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit bdf9055.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
|
@mgodwan @ask-kamal-nayan This test ran out of memory: Introduced here or in #20982. Can one of you take a look? |
…egy (opensearch-project#20943) Add foundational classes for composite data format storage including: - DataFormatAwareStoreDirectory and factory for format-aware storage - FileMetadata serialization for multi-format file tracking - CatalogSnapshot abstract methods for serialize, getFiles, getFormatVersionForFile - FormatChecksumStrategy interface with PrecomputedChecksumStrategy for O(1) checksums - FormatBlobRouter for format-aware remote blob container routing - DataFormatDescriptor with pluggable checksum strategies - CompositeRemoteDirectory for format-aware remote segment store - Unified indexingEngine(IndexingEngineConfig, FormatChecksumStrategy) plugin API - Parquet writer CRC32 computation via streaming Crc32Writer (ported to FFM) - Comprehensive tests for directories, checksum handlers, blob routing, and plugins Signed-off-by: Kamal Nayan <askkamal@amazon.com> Co-authored-by: Kamal Nayan <askkamal@amazon.com> Co-authored-by: Mohit Godwani <81609427+mgodwan@users.noreply.github.com>
…egy (opensearch-project#20943) Add foundational classes for composite data format storage including: - DataFormatAwareStoreDirectory and factory for format-aware storage - FileMetadata serialization for multi-format file tracking - CatalogSnapshot abstract methods for serialize, getFiles, getFormatVersionForFile - FormatChecksumStrategy interface with PrecomputedChecksumStrategy for O(1) checksums - FormatBlobRouter for format-aware remote blob container routing - DataFormatDescriptor with pluggable checksum strategies - CompositeRemoteDirectory for format-aware remote segment store - Unified indexingEngine(IndexingEngineConfig, FormatChecksumStrategy) plugin API - Parquet writer CRC32 computation via streaming Crc32Writer (ported to FFM) - Comprehensive tests for directories, checksum handlers, blob routing, and plugins Signed-off-by: Kamal Nayan <askkamal@amazon.com> Co-authored-by: Kamal Nayan <askkamal@amazon.com> Co-authored-by: Mohit Godwani <81609427+mgodwan@users.noreply.github.com>
Description
This PR introduces the foundational storage layer classes and interfaces required for composite data format support. It establishes the directory abstractions, metadata
structures, and remote store extensions that allow files from multiple data formats to coexist within a single shard — each stored in its own subdirectory and routed
through format-aware directory implementations.
This is the first in a series of PRs. Subsequent PRs will add the composite indexing engine, data format plugin integration, and end-to-end read/write paths.
This is the first in a series of PRs building out multi-format storage support.
Changes
New Classes
CodecUtil for Lucene, CRC32 for others).
SubdirectoryAwareStore inner class to server for reuse).
Modified Classes
imports.
Testing
This PR introduces foundational classes and interfaces. Tests will follow in subsequent PRs as the composite engine integration is built out.
Related Issues
Resolves #[Issue number to be closed when this PR is merged]
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.