Skip to content

rafs: only append more chunks to last bio when amplify io #317

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

Merged
merged 1 commit into from
Mar 4, 2022
Merged

rafs: only append more chunks to last bio when amplify io #317

merged 1 commit into from
Mar 4, 2022

Conversation

changweige
Copy link
Contributor

Amplified IO chunks should be appended to the last Desc rather
than creating a new desc comprising several chunks.
Other wise it will consume IO buffers provided by upper layer.
Moreover, two descs can't be merged before issuing to backend storage.

Signed-off-by: Changwei Ge [email protected]

@changweige
Copy link
Contributor Author

A significant read performance improvement has been observed.

6,9c6,9
<             runtime:            9169
<             iops:               340.27702
<             bw(KB/S):           1361
<             latency/ms:         min:0.011646, max: 150417.624, mean: 8.859469373077
---
>             runtime:            3678
>             iops:               776.508972
>             bw(KB/S):           3106
>             latency/ms:         min:0.011943, max: 268322.442, mean: 3.9111191943279997
33,36c33,36
<             runtime:            8933
<             iops:               349.266764
<             bw(KB/S):           1397
<             latency/ms:         min:0.012335, max: 153843.736, mean: 8.598720666026
---
>             runtime:            2678
>             iops:               1066.467513
>             bw(KB/S):           4265
>             latency/ms:         min:0.012388, max: 198249.429, mean: 2.584388967437

@jiangliu
Copy link
Collaborator

jiangliu commented Mar 2, 2022

Does v6 have the same issue or not?

@changweige
Copy link
Contributor Author

Does v6 have the same issue or not?

No. In fact v6 has no read amplification from Rafs layer inherently. For v6, we'd better amplify backend IO from storage layer.

Amplified IO chunks should be appended to the last Desc rather
than creating a new desc comprising several chunks.
Other wise it will consume IO buffers provided by upper layer.
Moreover, two descs can't be merged before issuing to backend storage.

Signed-off-by: Changwei Ge <[email protected]>
@jiangliu
Copy link
Collaborator

jiangliu commented Mar 3, 2022

@bergwolf @xujihui1985 Have time to review this PR?

@bergwolf
Copy link
Member

bergwolf commented Mar 4, 2022

I'll take a look later today.

@bergwolf bergwolf merged commit bce27da into dragonflyoss:master Mar 4, 2022
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