-
Notifications
You must be signed in to change notification settings - Fork 187
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
relative references need to (slowly) walk the path #6526
Comments
@kulmann @michaelstingl Regardless of any server side changes we might come up with, all clients should try to use the fileid with the So instead of making a PROPFIND to
This obviously also affects DELETE, GET and PUT requests. For MOVE and COPY the source can be a node based reference, the target can reference the parent node and the name. Same for MKCOL which can use a node based reference of the directory in which a new child should be created and a single path segment for the new dir. |
@butonic I'm currently implementing these id-based requests in the web client. An id-based Edit: See #9619 |
moved to #9623 (comment) |
As a legacy from oc10 all clients currently make path based requests, relative to a space root. This forces the decomposedfs to walk the path, which takes time. For a dir https://cloud.ocis.test/files/spaces/personal/admin/f1/f2/f3/f4/f5/f6/f7/f8/f9/f10 on an NFS it might look like this:
This is negligible on local filesystems, but on NFS the Child lookup becomes painfully visible.
For now we only implemented a stat cache in decomposedfs. A direntry cache is certainly possible, but requires invalidation and coordination effort when running multiple storage providers.
As a client, you typically already have the file id when navigating the tree as every PROPFIND response for a directory listing also returns the file id of every child. The easiest way to take load off the server is to not generate it in the first place.
Making a PROPFIND with an id only reference can immediately look up the correct node:
hm, retrying the propfind at lvl 10 sometimes gives really bad performance:
hmmmm, seems to resolve itself after a while ...
The text was updated successfully, but these errors were encountered: