-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Stat cache for DAV storage, improves s2s performance a little bit #14120
Conversation
Partial fix for #13882 |
Regression testing (for the stuff that might not be covered)
|
nice idea. 👍 Not tested yet. |
Well ideally we need this for every ext storage, see #7910 |
This improves performance from about 1.78 times, see #14120 (comment) |
@@ -0,0 +1,52 @@ | |||
<?php | |||
/** | |||
* Copyright (c) 2014 Andreas Fischer <bantu@owncloud.com> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
accident or fact?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fact. Borrowed from #7897 which also needs review since many releases...
131ef9f
to
0e10256
Compare
@@ -0,0 +1,24 @@ | |||
--- lib/private/app.php |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
accident?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah...
0e10256
to
390fc61
Compare
|
Additional fails to look into:
|
|
@icewind1991 sometimes I wonder if we shouldn't just wire up storage file operation directly to the DB cache instead of redoing additional calls or introducing additional stat cache layers... |
For example here: https://github.com/owncloud/core/blob/master/lib/private/files/storage/dav.php#L507 |
|
|
imo that should not be done in the storage layer, ideally apps use the Node/FileInfo objects to get stuff directly from cache but we could do it in the View to for some operations. |
Also note that flysystem has integrated caching support so for every backend using that (webdav is an option) we get stat caching for free |
I'm not talking about apps. Sometimes the storage itself needs to do checks like |
rebase needed. What is the state of this? |
It's should work but needs testing. |
|
Requires #15126 to be able to properly regression test unavailable storages |
#15126 was merged, rebasing. |
|
The stat cache stored known states of files/folders to avoid requerying the DAV server multiple times.
Now using the existing ArrayCache |
The inspection completed: No issues found |
Refer to this link for build results (access rights to CI server needed): |
works 👍 |
Second reviewer @icewind1991 @nickvergessen ? |
👍 |
Stat cache for DAV storage, improves s2s performance a little bit
@icewind1991 @karlitschek @DeepDiver1975 @schiesbn
I ran the pyocclient test suite: