GoogleCloudPlatform / gcsfuse

A user-space file system for interacting with Google Cloud Storage

Home Page:https://cloud.google.com/storage/docs/gcs-fuse

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Expose API for stat and type cache

lesnitsky opened this issue · comments

I've tried GCSFuse on Cloud Run both with cache enabled and disabled and I'm seeing a significant difference in performance. I understand where consistency limitations are coming from when cache is enabled, however I still want performance benefits of cached stats. Our system has a full control over storage buckets, so updating a local cache is as simple as subscribing to a pubsub topic. Is there any way to manipulate the cache from outside and if not – would you consider exposing such an API?

As far as I understand reading through the docs, stat cache is both positive and negative, however, new objects becoming available over time (due to other actors creating those objects) is quite a common scenario, so maybe it makes sense to make negative caching opt-in.

Hi @lesnitsky,

We won't be able to expose an API to modify GCSFuse cache as it is an internal resource, and we don't want to allow external updates to it.
However, I do think that your suggestion to make negative cache opt-in is an interesting use case. I've passed your suggestion along to our team, and we'll be evaluating it internally. We'll get back to you as soon as we have a decision.

In the meantime, I would suggest you to evaluate use of --stat-cache-ttl flag to figure out if setting a lower time-to-live helps your use case. (Detailed documentation here)

Thanks,
Ashmeen

lower ttl won't help, our system is pretty much "if the object is there, it's there forever" so caching makes a lot of sense (and I'd rather increase default values), but also new objects should be available right away – so negative caching is a blocker here.