Skip to content
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

Support Rust TransferManager Upload File #69

Merged
merged 14 commits into from
Aug 19, 2024
Merged

Conversation

waahm7
Copy link
Contributor

@waahm7 waahm7 commented Aug 5, 2024

Description of changes:

  • Sync to the latest commit of the Rust transfer manager
  • Add support for benchmarking uploads

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@waahm7 waahm7 changed the title WIP | Support Upload File Support Rust TransferManager Upload File Aug 13, 2024
@waahm7 waahm7 marked this pull request as ready for review August 13, 2024 20:14
@waahm7 waahm7 requested review from aajtodd and graebm and removed request for aajtodd August 13, 2024 20:17
Copy link

@aajtodd aajtodd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable, nice work.

let key = &task_config.key;

let stream = if self.config().workload.files_on_disk {
InputStream::from_path(key).with_context(|| "Failed to create stream")?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the key actually the path here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

runners/s3-benchrunner-rust/src/transfer_manager.rs Outdated Show resolved Hide resolved
let random_data_for_upload: Bytes = {
let mut rng = fastrand::Rng::new();
let data: Vec<u8> = repeat_with(|| rng.u8(..)).take(upload_data_size).collect();
data.into()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

trivial: I know in the C-runner, it's a big noticeable pause when filling a 100GiB buffer with random data. Would this go faster if we asked for random 64bit numbers? Or used a different library?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

runners/s3-benchrunner-rust/src/transfer_manager.rs Outdated Show resolved Hide resolved
@waahm7 waahm7 merged commit d0b2b16 into main Aug 19, 2024
5 checks passed
@waahm7 waahm7 deleted the update-to-main-rust-tm branch August 19, 2024 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants