Skip to content

feat(services/goosefs): bump goosefs-sdk to 0.2.1 and expose cache features - #8269

Merged
Xuanwo merged 2 commits into
apache:mainfrom
XuQianJin-Stars:feat/goosefs-sdk-0.2.1-cache-features
Sep 11, 2026
Merged

feat(services/goosefs): bump goosefs-sdk to 0.2.1 and expose cache features#8269
Xuanwo merged 2 commits into
apache:mainfrom
XuQianJin-Stars:feat/goosefs-sdk-0.2.1-cache-features

Conversation

@XuQianJin-Stars

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Closes #.

Rationale for this change

goosefs-sdk 0.2.1 compiles the client metadata cache and the disk-backed page
cache only behind Cargo features, so the default client stays a gRPC data plane.
OpenDAL currently depends on 0.1.9, which does not expose those features and
cannot compile the 0.2.1 cache backends.

Forwarding the opt-in features lets applications enable the caches without
pulling lru, foyer, or io_uring into every services-goosefs build.

What changes are included in this PR?

  • Bump goosefs-sdk from 0.1.9 to 0.2.1 with default-features = false.

  • Add opt-in features on opendal-service-goosefs and the opendal facade:

    Facade feature Service crate feature
    services-goosefs-metadata-cache metadata-cache
    services-goosefs-page-cache page-cache
    services-goosefs-page-cache-io-uring page-cache-io-uring
  • Document how to enable the features and the runtime knobs
    (GOOSEFS_METADATA_CACHE_ENABLED, GOOSEFS_USER_CLIENT_CACHE_ENABLED).

  • Drop the 0.1.9 note that $GOOSEFS_CONF_DIR was ignored; 0.2.1 reads it.

Are there any user-facing changes?

Yes.

  • services-goosefs now tracks goosefs-sdk 0.2.1. The default GooseFS build
    no longer enables the SDK's old metrics-pushgateway default.
  • Cache support is opt-in. Compiling a cache feature does not replace runtime
    configuration: metadata cache is on by default once compiled; page cache
    stays off until GOOSEFS_USER_CLIENT_CACHE_ENABLED=true (and cache dirs)
    are set.
  • page-cache-io-uring already enables page-cache. io_uring is Linux-only;
    other targets still build the portable tokio::fs store.

Example:

cargo add opendal --features services-goosefs,services-goosefs-metadata-cache,services-goosefs-page-cache-io-uring

…atures

0.2.1 compiles metadata and page caches only when opted in, so OpenDAL
can keep the default GooseFS client as a gRPC data plane.
@XuQianJin-Stars

Copy link
Copy Markdown
Contributor Author

CI Error Link:#8271

Comment thread core/Cargo.toml Outdated
services-ghac = ["dep:opendal-service-ghac"]
services-github = ["dep:opendal-service-github"]
services-goosefs = ["dep:opendal-service-goosefs"]
services-goosefs-metadata-cache = [

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be exposed at opendal side.

Keep metadata-cache, page-cache, and page-cache-io-uring on
opendal-service-goosefs. Applications that use the facade enable them by
depending on that crate directly so Cargo unifies the features.

@Xuanwo Xuanwo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice change, thank you!

@Xuanwo
Xuanwo merged commit af11b6e into apache:main Sep 11, 2026
377 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants