Comments (3)
#69 improved this by replacing one ListObjects with a HeadObject. What's left to do is to use cached state as a hint to optimize the requests hereโif we already suspect something is a file (or directory), we can start with the HeadObject (or ListObjects) and only do the other request if it fails.
from mountpoint-s3.
Not sure if applicable, I'm not familiar with internals of FUSE, however:
In mount.fuse(8) I see two options:
entry_timeout=T
The timeout in seconds for which name lookups will be cached. The default is 1.0 second. For all the timeout options, it is possible to give fractions of a second as well (e.g. entry_timeout=2.8)
attr_timeout=T
The timeout in seconds for which file/directory attributes are cached. The default is 1.0 second.
Which both sounds excellent, if mount-s3 could set/use these?
We have a very static object structure, so caching would be great and work very well.
Did some measurements and for one test it's 30-50% list-type requests, which are costly both in round trip time, but also money :-)
(Thanks for a very exciting and promising project btw!)
from mountpoint-s3.
Yeah, we actually do set those timeouts, here:
mountpoint-s3/mountpoint-s3/src/fs.rs
Lines 201 to 216 in b632bbe
We set them very low because we want to preserve S3's strong consistency model by default. But we know for some workloads, the bucket doesn't change very much/at all, and so we could cache that metadata much longer. We're tracking that as a roadmap item in #255.
This issue is tracking a smaller improvement we could make: if we've listed a file/directory previously, then when the cache expires we could speculate that it's still a file/directory when we try to look it up from S3 again. I think with the way that lookup works right now, that would allow us to skip some HeadObject requests, but probably not any ListObjects requests.
from mountpoint-s3.
Related Issues (20)
- it seems that mount-s3 do not support V1 API? HOT 3
- S3 mountpoint is being unmounted right after mounting attempt HOT 3
- Folder becomes inaccessible after deleting a file inside it HOT 4
- calculate sha256 HOT 3
- Mountpoint operations hang indefinitely HOT 12
- Installation fails in Sagemaker Classic kernel console HOT 4
- Implement statfs operation to report basic stats HOT 3
- CRT error 2054 (AWS_ERROR_HTTP_INVALID_PATH) when mounting S3 Express bucket HOT 4
- Listing all files under specific prefix is very slow HOT 1
- Disable TLS / certificate verification HOT 3
- Caching performance should be better HOT 4
- Improvements to error reporting (RFC)
- Add the expected behaviours of Mountpoint in the troubleshooting page that customers face
- Duplication of file and directory of same name in S3 Express Zone One bucket using Mountpoint
- Build is not reproducible HOT 1
- Double `touch` errors HOT 2
- Include creation of files for benchmarking Mountpoint in benchmarking script HOT 1
- token is not refreshed when running in k8s pod connected to serviceaccount HOT 8
- Unable to Write HOT 4
- Files unexpectedly released leading to `Bad file descriptor` HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mountpoint-s3.