Sandbox/foyer page cache#21202
Conversation
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit 37715ae.
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. |
56514be to
668ed6a
Compare
e1d6186 to
cc7d3e3
Compare
cc7d3e3 to
c3354ee
Compare
bfb5b53 to
c290e04
Compare
c290e04 to
37715ae
Compare
|
❌ Gradle check result for 6cf1c32: 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? |
6cf1c32 to
fa47717
Compare
|
Persistent review updated to latest commit f736741 |
|
❌ Gradle check result for f736741: 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? |
f736741 to
1b7130d
Compare
|
Persistent review updated to latest commit 1a7f6c0 |
1a7f6c0 to
b5b530b
Compare
|
Persistent review updated to latest commit 9479658 |
9479658 to
9c9df51
Compare
|
Persistent review updated to latest commit 9c9df51 |
9c9df51 to
a77e491
Compare
Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
…errors Settings (Java): - Add PageCacheSettings.java with format_cache.block_size (default 64MB) and format_cache.io_engine (auto|io_uring|psync, default auto) in org.opensearch.index.store.remote.filecache — same package as FileCacheSettings. - Register both in ClusterSettings.BUILT_IN_CLUSTER_SETTINGS. - Imports use org.opensearch.core.common.unit.ByteSizeUnit/Value. Page cache interface: - Update PageCache.java Javadoc: SSD-tier analog of OS page cache, agnostic of entry granularity and backing implementation. Java FFM layer: - FoyerPageCache: constructor takes blockSizeBytes + ioEngine params. - FoyerBridge.createCache: add blockSizeBytes + ioEngine params; update FFM FunctionDescriptor with two new arguments. Rust: - foyer_cache.rs: build_io_engine_config(choice) accepts auto/io_uring/psync; FoyerCache::new takes block_size_bytes + io_engine params; clone io_engine before async move closure to avoid borrow-after-move. - ffm.rs: foyer_create_cache adds block_size_bytes (u64) and io_engine_ptr/io_engine_len params. - tests.rs: update all FoyerCache::new() (4-param) and foyer_create_cache() (6-param) call sites; add BLOCK_SIZE/IO_ENGINE constants; add 3 new validation tests for blockSizeBytes <= 0 and null ioEngine. - dataformat-native/rust/Cargo.toml: remove stale foyer-page-cache workspace member (sandbox/modules/foyer-page-cache/rust no longer exists). Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
…rbiddenApisTest Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com>
…acheService Signed-off-by: Vishwas Garg <glvishwa@amazon.com>
a77e491 to
ce483f2
Compare
|
Persistent review updated to latest commit ce483f2 |
* Add foyer cache to sandbox module Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Add foyer cache to sandbox module Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Make format cache block_size and io_engine configurable; fix compile errors Settings (Java): - Add PageCacheSettings.java with format_cache.block_size (default 64MB) and format_cache.io_engine (auto|io_uring|psync, default auto) in org.opensearch.index.store.remote.filecache — same package as FileCacheSettings. - Register both in ClusterSettings.BUILT_IN_CLUSTER_SETTINGS. - Imports use org.opensearch.core.common.unit.ByteSizeUnit/Value. Page cache interface: - Update PageCache.java Javadoc: SSD-tier analog of OS page cache, agnostic of entry granularity and backing implementation. Java FFM layer: - FoyerPageCache: constructor takes blockSizeBytes + ioEngine params. - FoyerBridge.createCache: add blockSizeBytes + ioEngine params; update FFM FunctionDescriptor with two new arguments. Rust: - foyer_cache.rs: build_io_engine_config(choice) accepts auto/io_uring/psync; FoyerCache::new takes block_size_bytes + io_engine params; clone io_engine before async move closure to avoid borrow-after-move. - ffm.rs: foyer_create_cache adds block_size_bytes (u64) and io_engine_ptr/io_engine_len params. - tests.rs: update all FoyerCache::new() (4-param) and foyer_create_cache() (6-param) call sites; add BLOCK_SIZE/IO_ENGINE constants; add 3 new validation tests for blockSizeBytes <= 0 and null ioEngine. - dataformat-native/rust/Cargo.toml: remove stale foyer-page-cache workspace member (sandbox/modules/foyer-page-cache/rust no longer exists). Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Update the cache interface from page-cache to block-cache Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Fix spotless formatting violations in BlockCacheSettings Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Add replaceSignatureFiles jdk-signatures to the forbiddenApisMain, forbiddenApisTest Signed-off-by: Vishwas Garg <glvishwa@amazon.com> * Move block cache to a plugin and wire it with native s3 repo Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> * Move block cache to a plugin and wire it with Node.java Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> * Fix up Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> * Removed block cache ITs, will be added when integrating with UnifiedCacheService Signed-off-by: Vishwas Garg <glvishwa@amazon.com> --------- Signed-off-by: Vishwas Garg <glvishwa@amazon.com> Signed-off-by: Bukhtawar Khan <bukhtawa@amazon.com> Co-authored-by: Vishwas Garg <glvishwa@amazon.com> Co-authored-by: Bukhtawar Khan <bukhtawa@amazon.com>
Description
A disk page cache backed by Foyer for caching Parquet column chunk reads on local NVMe, to be used by DataFusion's
TieredObjectStore(as of now). Can be later integrated during write paths etc. as well.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.