[Analytics] Vendor the liquid-cache library crates - #22569
Open
cocosz wants to merge 2 commits into
Open
Conversation
Contributor
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit eb9aff4. ⛔ Hard block: Issues at Medium severity or above will block this PR from merging.
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. |
cocosz
force-pushed
the
liquid-cache-plugin
branch
13 times, most recently
from
July 28, 2026 23:49
3ee183e to
747eb4a
Compare
5 tasks
cocosz
force-pushed
the
liquid-cache-plugin
branch
from
July 28, 2026 23:58
747eb4a to
b0c598c
Compare
4 tasks
cocosz
force-pushed
the
liquid-cache-plugin
branch
6 times, most recently
from
July 29, 2026 00:59
1622170 to
14023d0
Compare
added 2 commits
July 29, 2026 06:33
Adds an opt-in, in-memory decoded-batch cache (liquid cache) for the DataFusion analytics backend, wired behind a cargo feature so it is absent from the default build. When the `liquid_cache` feature is off (the default), the integration is an inlined no-op: eligible scans use the plain ParquetSource unchanged. When on, an eligible indexed row-group scan — all projected columns numeric/date/timestamp/boolean, within a column budget, and no string or binary predicate column — is wrapped with LiquidParquetSource so decoded batches are served from and populated into the process-global cache. Enabling is a single-file edit plus a build flag: the liquid cache dependency is a commented placeholder in the analytics-backend-datafusion crate (uncomment it, set the git repo/branch, and uncomment the matching `dep:` feature entries), then build with -PliquidCache (or LIQUID_CACHE=1). The default build declares no liquid cache source, so it resolves and compiles exactly as before. Signed-off-by: Tanvir Alam <tanvralm@amazon.com>
Adds the in-memory decoded-batch cache (opensearch-liquid-cache-core) and its DataFusion parquet reader (opensearch-liquid-cache-datafusion) as a self-contained Cargo workspace under sandbox/plugins/liquid-cache/src/main/rust. These crates build and unit-test on their own and are not yet wired into the engine; the analytics backend compiles them in only when built with the liquid_cache cargo feature, which a follow-up change enables. Kept as its own PR so the vendored library can be reviewed in isolation. Signed-off-by: Tanvir Alam <tanvralm@amazon.com>
cocosz
force-pushed
the
liquid-cache-plugin
branch
from
July 29, 2026 01:05
14023d0 to
eb9aff4
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Vendors the liquid-cache library as a self-contained Cargo workspace under
sandbox/plugins/liquid-cache/src/main/rust:opensearch-liquid-cache-core— the in-memory decoded-batch cache.opensearch-liquid-cache-datafusion— the DataFusion parquet reader that serves from / populates the cache.These crates build and unit-test on their own and are not yet wired into the engine. The analytics backend compiles them in only when built with the
liquid_cachecargo feature introduced in the parent PR, which the follow-up integration PR enables.Kept as its own PR so the vendored library can be reviewed in isolation, separate from the seam and from the engine/Java wiring.
This is PR 2 of a 3-part stack:
Changes
sandbox/plugins/liquid-cache/src/main/rust(the two crates + workspaceCargo.toml,Cargo.lock,rust-toolchain.toml).sandbox/plugins/liquid-cache/.gitignore.54 files changed, +12,433. No
build.gradleis added, so the Gradle build ignores the directory and the crates stay dormant until the integration PR wires them in.Check List
cargo test.