-
-
Notifications
You must be signed in to change notification settings - Fork 4.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
[stable27] fix: write object to the correct urn when moving from another storage to object store #47487
base: stable27
Are you sure you want to change the base?
Conversation
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.
This change introduced a regression as described in #47986 (comment)
Cherry-picked commits from https://github.com/nextcloud/server/pull/48998/commits |
… to object store Signed-off-by: Robin Appelman <[email protected]>
This commit fixes the issue #47856. When you upload a file into a group folder and when you use a single S3 bucket as primary storage, the final move operation hangs for a long time. In the background, Nextcloud initiates a copy-delete sequence from the bucket into the bucket, with causes a lot unnecessary overhead. Nextcloud thinks that the file must be imported to another storage and does not recognize that everything is done on the same object bucket. In that case, the import step can be completely skipped, which saves time, network bandwidth and reduces the load on the object storage. The behavior improves a lot with #46013. However, there are still some put messages that are being sent to the object storage when you use an object storage as primary storage and upload files into a group folder. Co-authored-by: Kate <[email protected]> Signed-off-by: Christoph Fiehe <[email protected]>
Some are still failing Signed-off-by: Côme Chilliet <[email protected]>
39da4f5
to
260b672
Compare
Regression fixed in cherry-picked commits
This should probably also have 3e12e1e |
Signed-off-by: Robin Appelman <[email protected]>
$this->copyObjects($sourceStorage, $sourceCache, $sourceCacheEntry); | ||
if ($sourceStorage->instanceOfStorage(ObjectStoreStorage::class)) { | ||
/** @var ObjectStoreStorage $sourceStorage */ | ||
$sourceStorage->setPreserveCacheOnDelete(true); |
Check failure
Code scanning / Psalm
UndefinedMethod Error
} | ||
if ($sourceStorage->instanceOfStorage(ObjectStoreStorage::class)) { | ||
/** @var ObjectStoreStorage $sourceStorage */ | ||
$sourceStorage->setPreserveCacheOnDelete(false); |
Check failure
Code scanning / Psalm
UndefinedMethod Error
Backport of PR #46013