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

os/blueStore: In osd_tp_thread, call _txc_finalize_kv. #14709

Merged
merged 1 commit into from
May 4, 2017

Conversation

majianpeng
Copy link
Member

To reduce overhead of _kv_sync_thread, make _txc_finalize_kv do
in_osd_tp_thread.

Signed-off-by: Jianpeng Ma jianpeng.ma@intel.com

@@ -7893,7 +7892,6 @@ void BlueStore::_kv_sync_thread()
}
for (auto txc : kv_submitting) {
assert(txc->state == TransContext::STATE_KV_QUEUED);
_txc_finalize_kv(txc, txc->t);
Copy link
Member

Choose a reason for hiding this comment

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

This has to happen in kv_sync_thread when using ExtentFreelistManager. For the bitmap one it could be moved. Perhaps we should just drop the extent-based implementation....

@liewegas liewegas changed the title os/BlueStore: In osd_tp_thread, call _txc_finalize_kv. os/blueStore: In osd_tp_thread, call _txc_finalize_kv. Apr 21, 2017
Copy link
Member

@liewegas liewegas left a comment

Choose a reason for hiding this comment

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

we need to either remove extentfreelistmanager, or we need to make the call site conditional on whether the freelist calls can be reordered (there is a bool method to report this in the interface).

@liewegas
Copy link
Member

@ifed01 what do you think?

@ifed01
Copy link
Contributor

ifed01 commented Apr 24, 2017

When choosing between additional flag verification at different locations and eliminating extentfreelist I'd select the second.
Wondering what's wrong with extentfreelist in this context though.

@liewegas
Copy link
Member

liewegas commented Apr 24, 2017 via email

@majianpeng
Copy link
Member Author

So we can remove extent allocator for bluestore. Still keep for bluefs. Is it ok?

@liewegas
Copy link
Member

liewegas commented Apr 24, 2017 via email

@majianpeng
Copy link
Member Author

Sorry, I missed the freelistmanger && allocator. I'd like to send another PR to remove extentlistmanager.

@majianpeng
Copy link
Member Author

update . please review.

To reduce overhead of _kv_sync_thread, make _txc_finalize_kv do
in_osd_tp_thread.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
@liewegas
Copy link
Member

liewegas commented May 3, 2017

We could take this one step further and combine finalize_kv and write_nodes. This looks good though!

@ifed01
Copy link
Contributor

ifed01 commented May 3, 2017

There is still another call for txc_finalize_kv from kv_sync_thread for deferred traansactions hence not sure if we can merge the funcs

@liewegas
Copy link
Member

liewegas commented May 3, 2017 via email

@ifed01
Copy link
Contributor

ifed01 commented May 3, 2017

As far as I understand it's there for kraken WAL compatibility. And we should update freelist here as well. Hence we can eliminate this call only if we don't bother that compatibility any more.

@liewegas
Copy link
Member

liewegas commented May 3, 2017 via email

@ifed01
Copy link
Contributor

ifed01 commented May 3, 2017

BTW it looks like there is another potential issue with that in Kraken - one might call txc_finalize_kv twice for the same txc. Probably we need to clear txc's allocated/released containers in txc_finalize_kv. At least for Kraken

@liewegas
Copy link
Member

liewegas commented May 3, 2017 via email

@liewegas
Copy link
Member

liewegas commented May 3, 2017 via email

@liewegas liewegas merged commit 1de3820 into ceph:master May 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants