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: separate kv_sync_thread into two parts #14035

Merged
merged 2 commits into from May 24, 2017

Conversation

Projects
None yet
3 participants
@liewegas
Member

liewegas commented Mar 18, 2017

No description provided.

@markhpc

This comment has been minimized.

Show comment
Hide comment
@markhpc

markhpc Mar 23, 2017

Member

This is failing to compile both in jenkins and on incerta in the same way (see the jenkins log). After some digging I suspect this might be due to gcc 4.8 not liking the c++11x syntax used here. If it compiles with gcc >= 5.x we may need to rewrite that part of the code if we care about 4.8 compatability (ie centos7).

Member

markhpc commented Mar 23, 2017

This is failing to compile both in jenkins and on incerta in the same way (see the jenkins log). After some digging I suspect this might be due to gcc 4.8 not liking the c++11x syntax used here. If it compiles with gcc >= 5.x we may need to rewrite that part of the code if we care about 4.8 compatability (ie centos7).

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas Mar 24, 2017

Member

retest this please

Member

liewegas commented Mar 24, 2017

retest this please

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas Mar 26, 2017

Member

sage-2017-03-25_14:58:48-rados-wip-bluestore-kv-finisher---basic-smithi

Member

liewegas commented Mar 26, 2017

sage-2017-03-25_14:58:48-rados-wip-bluestore-kv-finisher---basic-smithi

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas Mar 27, 2017

Member
Member

liewegas commented Mar 27, 2017

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas Apr 6, 2017

Member

retest this please

Member

liewegas commented Apr 6, 2017

retest this please

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas Apr 13, 2017

Member

This deadlocks when run under a loaded osd. the core files are jacked up, but the last line i see for the finalizer thread is

2017-04-13 19:36:55.886926 7f33cd9d5700 20 bluestore(/var/lib/ceph/osd/ceph-4) _txc_committed_kv txc 0x562da76ffb00

which suggests it's deadlocking while doing the completions.

Member

liewegas commented Apr 13, 2017

This deadlocks when run under a loaded osd. the core files are jacked up, but the last line i see for the finalizer thread is

2017-04-13 19:36:55.886926 7f33cd9d5700 20 bluestore(/var/lib/ceph/osd/ceph-4) _txc_committed_kv txc 0x562da76ffb00

which suggests it's deadlocking while doing the completions.

@liewegas

This comment has been minimized.

Show comment
Hide comment
@markhpc

This comment has been minimized.

Show comment
Hide comment
@markhpc
Member

markhpc commented May 19, 2017

See #15163

@liewegas

This comment has been minimized.

Show comment
Hide comment
@liewegas

liewegas May 19, 2017

Member

tabling this approach until we resolve the deadlock between split's use of osr_drain (while holding pg lock) vs the completions that may also block on pg lock.

Member

liewegas commented May 19, 2017

tabling this approach until we resolve the deadlock between split's use of osr_drain (while holding pg lock) vs the completions that may also block on pg lock.

vstart.sh: add --filestore_path to direct osd.0 filestore data to spe…
…cific dir

This hack only works for 1 osd, but it lets you put it on a specific
directory/device.

Signed-off-by: Sage Weil <sage@redhat.com>
@markhpc

I believe this will compile with these changes.

Show outdated Hide outdated src/os/bluestore/BlueStore.h
Show outdated Hide outdated src/os/bluestore/BlueStore.cc
Show outdated Hide outdated src/os/bluestore/BlueStore.cc
os/bluestore: separate kv_sync_thread into two parts
The kv_sync_thread is a bottleneck; making it do less work improves
performance on fast devices.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Sage Weil <sage@redhat.com>
@ifed01

ifed01 approved these changes May 19, 2017

@markhpc

This comment has been minimized.

Show comment
Hide comment
@markhpc

markhpc May 19, 2017

Member

A quick performance test shows this improving on master in the expected range. I think this is ready for qa-testing!

Member

markhpc commented May 19, 2017

A quick performance test shows this improving on master in the expected range. I think this is ready for qa-testing!

@liewegas liewegas added the needs-qa label May 23, 2017

@liewegas liewegas merged commit ff04315 into ceph:master May 24, 2017

3 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodifed Submodules submodules for project are unmodified
Details
default Build finished.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment