-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat: use seaweedfs as nodestore backend #3842
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
feat: use seaweedfs as nodestore backend #3842
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## byk/feat/s3-nodestore #3842 +/- ##
======================================================
Coverage 99.45% 99.45%
======================================================
Files 3 3
Lines 183 183
======================================================
Hits 182 182
Misses 1 1 ☔ View full report in Codecov by Sentry. |
|
@doc-sheet I have this on the logs, have you encountered this? Is this expected?
|
@aldy505 looks like |
docker-compose.yml
Outdated
-volume=true | ||
-volume.dir.idx=/data/idx | ||
-volume.index=leveldbLarge | ||
-volume.max=30 |
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.
volume.max should probably be unlimited
https://github.com/seaweedfs/seaweedfs/blob/1cba609bfa2306cc2885df212febd5ff954aa693/docker/entrypoint.sh#L40
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.
and -master.volumeSizeLimitMB
too
It is better to have several volumes running on one machine, so that if one volume is compacting, the other volumes can still serve read and write requests. The default volume size is 30GB. So if your server does not have multiple 30GB empty spaces, you need to reduce the volume size.
https://github.com/seaweedfs/seaweedfs/wiki/Production-Setup#for-single-node-setup
… `-{service}.grpcPort`
@BYK @doc-sheet heya, the CI are green :) |
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.
Looks pretty good to me. I think S3PassthroughDjangoNodeStorage
had a fallback mode. Is it enabled automatically so people can easily switch over?
@@ -17,5 +17,6 @@ echo "Created $(create_volume sentry-kafka)." | |||
echo "Created $(create_volume sentry-postgres)." | |||
echo "Created $(create_volume sentry-redis)." | |||
echo "Created $(create_volume sentry-symbolicator)." | |||
echo "Created $(create_volume sentry-seaweedfs)." |
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.
Not sure if we should make this a global volume btw. Not sure if that pattern is good at all (carried the old ones over for compatibility reasons)
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.
That would survive docker compose down -v
. I mostly use docker compose down -v
to destroy any other volumes that don't have any serious data (like the logs volumes).
$dc exec seaweedfs mkdir -p /data/idx/ | ||
$s3cmd --access_key=sentry --secret_key=sentry --no-ssl --region=us-east-1 --host=localhost:8333 --host-bucket='localhost:8333/%(bucket)' mb s3://nodestore | ||
else | ||
echo "Node store already exists, skipping..." |
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.
What if we actually migrated all the data at this stage?
FYI your PR is targeting my branch. Not sure if that was intentional or not. |
It is intentional |
WIP