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

Thin provisioning : Enable zero detecting for requests #349

Merged

Conversation

shosseinimotlagh
Copy link
Contributor

No description provided.

Add thin flag
Add baseline functions for thin pro
// all requests. The caller needs to load the requests before starting the job. The requests are loaded in the form of
// Write with three or four parameters and Read with three parameters. The value is optional and is used only for write
// requests.
class IOManualTestJob : public TestJob {
Copy link
Contributor

@yamingk yamingk Mar 11, 2024

Choose a reason for hiding this comment

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

nit: Is there a reason why the existing IOTestJob::same_lbas() (with some modification) can't serve the purpose of this basic test?

Added a manual io job test
// Case one: normal read (no zero padding)
std::make_tuple("write", 0, 100, 4), std::make_tuple("read", 5, 20),
// Case two: zero padding, read after write
std::make_tuple("write", 1, 10), std::make_tuple("read", 1, 20), std::make_tuple("read", 5, 3),
Copy link
Contributor Author

@shosseinimotlagh shosseinimotlagh Mar 12, 2024

Choose a reason for hiding this comment

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

1- write zeros from lba 1 to 10
2- read a) from lba 1 to 20 b) from lba 5 to lba 7

Copy link
Contributor

@yamingk yamingk Mar 12, 2024

Choose a reason for hiding this comment

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

What I meant is to put some comment in the code for readers to understand better.

Questinon: how come "read", 5, 3 maps to read from lba 5 to 7?

// Case two: zero padding, read after write
std::make_tuple("write", 1, 10), std::make_tuple("read", 1, 20), std::make_tuple("read", 5, 3),
// Case three: zero padding, overlapping for read
std::make_tuple("write", 100, 200), std::make_tuple("read", 150, 250),
Copy link
Contributor Author

Choose a reason for hiding this comment

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

1- write zeros from lba 100 to 200
2- read from lba 150 to 350 - half a portion is populated with zero buffers

// Case three: zero padding, overlapping for read
std::make_tuple("write", 100, 200), std::make_tuple("read", 150, 250),
// Case four: no write
std::make_tuple("read", 800, 5)};
Copy link
Contributor Author

Choose a reason for hiding this comment

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

read from lbas that have been not populated.

@yamingk
Copy link
Contributor

yamingk commented Mar 12, 2024

Please make sure all github CI is passing before merge. Thanks.

Copy link
Contributor

@yamingk yamingk left a comment

Choose a reason for hiding this comment

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

please make sure ci build pass before merge.

@shosseinimotlagh shosseinimotlagh merged commit ed3ffae into eBay:thin_provisioning Mar 13, 2024
14 of 16 checks passed
@shosseinimotlagh shosseinimotlagh deleted the thin_skip_all_zero branch March 13, 2024 00:16
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.

2 participants