-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
[WIP] allow configuring multiple object store backends #35523
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
e4a26d7
to
f4440c7
Compare
Signed-off-by: Robin Appelman <robin@icewind.nl>
f4440c7
to
7c8a53d
Compare
4ba3556
to
6557231
Compare
Signed-off-by: Robin Appelman <robin@icewind.nl>
6557231
to
d8ed210
Compare
} | ||
} | ||
|
||
private function getObjectStoreConfig(): ?array { |
Check failure
Code scanning / Psalm
InvalidReturnType
The declared return type 'array<array-key, mixed>|null' for OC\Files\ObjectStore\PrimaryObjectStoreConfig::getObjectStoreConfig is incorrect, got 'ArrayAccess|array{default: array{default: mixed}|mixed|null}'
$this->validateObjectStoreConfig($config); | ||
} | ||
|
||
return $objectStore; |
Check failure
Code scanning / Psalm
InvalidReturnStatement
The inferred type 'ArrayAccess|array{default: array{default: mixed}|mixed}' does not match the declared return type 'array<array-key, mixed>|null' for OC\Files\ObjectStore\PrimaryObjectStoreConfig::getObjectStoreConfig
This was referenced Mar 12, 2024
Merged
Merged
Merged
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚧
Allow configuring multiple object store backends to allow further load balancing and easier migration.
By default everything is put in the "default" bucket, objects for the root storage are put in the "root" bucket if it exists ("default" if it doesn't), the backend for users can be set with a user preference option (
occ user:setting <user> homeobjectstore objectstore <config key>
).Existing
objectstore
andobjectstore_multibucket
configurations are handled transparently.Migration example
Migrating users to a new s3 server could be done with the following steps:
all new users will now be stored on the new s3 server, existing users can now be migrated one-by-one with minimal downtime
example configuration:
For a use case where all objects in the root storage is put in "objectstore1/nextcloud-root", users created before the objectstore migration have the "homeobjectstore.objectstore" config option set to "old" and have their objects stored in "objectstore1/nextcloud" which all users created afterwards have their objects stored in the "objectstore2/nextcloud-XX" buckets.
todo