-
Notifications
You must be signed in to change notification settings - Fork 21
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
add EXTRA_TRAVERSE_WEIGHT_MULTIPLIER environment var #291
base: main
Are you sure you want to change the base?
Conversation
Thanks @zldrobit ! Could you please give us a bit more details first, also tbh, I'm not very comfortable introducing the whole env variable specifically for this case. If we decide it is worth it, I would rather do this as part of the DVC remote config. But I'm open to other opinion.
|
Of course. And I agree with you that an option in DVC remote config is a better option compared with an environment var.
I only pushed one text file with several bytes just for testing, but the dvc-objects/src/dvc_objects/db.py Lines 427 to 449 in 7d7efe1
It happens only the first time I pushed. After the first push, the
The remote contains
The S3 compatible server I hosted translates each |
so, do you expect this warm up and full traverse to happen often? How big of a priority this for you, is it a blocker? could you describe the workflow? (we can even jump on a call and chat, may be I can suggest a different way to handle this). I'm bit uncomfortable to be honest to complicate the algorithm or introduce new env vars (and we actually want to reconsider it and use the local caching) because of the specific S3 implementation. |
Not very often. My colleagues encountered a long-time
Yes, we have 3 training servers connected by a 1Gb network. They share a
I guess the file hierarchy on the dvc cache is the same as the dvc remote storage. If this is true, we could avoid using |
Hi @shcheklein, friendly ping. It's been about 3 weeks since the last comment. Would you spare your time to advise us to improve the workflow considering my last comment? |
@zldrobit sorry for the delay.
I assume this is rare and doesn't require a fix?
could you clarify this please? |
Sorry for the late reply, too 😅
Of course. When my colleague sends a dataset to me with a git link containing
I had to change the read timeout to 3600 by using
The I understand it's not ideal to change the weight algorithm just for our use case, and this may introduce another problem (e.g., issuing too many single-file requests). Maybe I have to improve the underlying minio S3 IOPS performance as well. Or just use another type of remote storage (e.g., SFTP, HTTP, or WebDAV). |
I hosted a DVC remote storage on a S3 compatible server. The server has only rotational HDDs, and the S3.ListObjectsV2 is very slow making
_list_oids_traverse()
runs for a long time. It seems that IOPS of my server is much lower than an AWS S3 bucket. In this PR, I add an environment varEXTRA_TRAVERSE_WEIGHT_MULTIPLIER
for users to set an extra weight multiplier when comparing listing and traverse weight inoids_exist()
, so users could customize the traverse policy for variant S3 compatible service with different hard drive performance. E.g., settingEXTRA_TRAVERSE_WEIGHT_MULTIPLIER=1000
disabling traverse for me, and the elapsed time ofdvc push
drops from nearly two hours to less than 20 minutes (remote size = 500k).Related issues:
#178
minio/minio#19532