-
Notifications
You must be signed in to change notification settings - Fork 413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for caching in trade-off for reduced guarantees #29
Comments
Plan
|
This is mostly implemented at e82b91f, but doesn't yet make things fast because we don't have a negative cache, necessary because for lookups we stat both the file name and the directory name. So, still to do:
|
By the way, negative caching will make the second The only way I see to make the first very fast is to cache a mapping from name to file/dir/both flags on the directory inode when reading it, then using that to decide what to stat. Yet another kind of caching, with an inconsistent source. Ugh. |
At 711b5f1a38dbe3ea7387e9b1accd68ee86a99277: (All of this was from asia-east1-a to a standard bucket in Asia.) |
Oops, need to document the flag. |
Right now, gcsfuse caches nothing and allows the kernel to cache nothing. This is in order to support the consistency guarantees documented in semantics.md. But it makes things slow, particularly when the kernel is doing path resolution (which is very frequent).
There is probably room for a
--go_fast
flag that users can enable if they are okay with relaxed guarantees. I would start with just allowing the kernel to cache attributes and entries, and see if anything else is truly needed. If so, the following additional things may or may not be helpful (measure first to find out!):gcs.Object
record for it, perhaps with TTL. Probably also supports negative entries.The text was updated successfully, but these errors were encountered: