Skip to content

luminous: osd/bluestore: Actually wait until completion in write_sync#29564

Merged
yuriw merged 1 commit intoceph:luminousfrom
k0ste:luminous_backports4
Oct 16, 2019
Merged

luminous: osd/bluestore: Actually wait until completion in write_sync#29564
yuriw merged 1 commit intoceph:luminousfrom
k0ste:luminous_backports4

Conversation

@k0ste
Copy link
Copy Markdown
Contributor

@k0ste k0ste commented Aug 9, 2019

https://tracker.ceph.com/issues/41510


This function is only used by RocksDB WAL writing so it must sync data.

This fixes #18338 and thus allows to actually set bluefs_preextend_wal_files
to true, gaining +100% single-thread write iops in disk-bound (HDD or bad SSD) setups.
To my knowledge it doesn't hurt performance in other cases.
Test it yourself on any HDD with fio -ioengine=rbd -direct=1 -bs=4k -iodepth=1.

Issue #18338 is easily reproduced without this patch by issuing a kill -9 to the OSD
while doing fio -ioengine=rbd -direct=1 -bs=4M -iodepth=16.

Fixes: https://tracker.ceph.com/issues/18338 https://tracker.ceph.com/issues/38559
Signed-off-by: Vitaliy Filippov vitalif@yourcmc.ru
(cherry picked from commit c703cf9)

Conflicts:

  • path: src/os/bluestore/KernelDevice.cc
    comment: luminous has a single variable "fd_buffered" where master has an array "fd_buffereds"

This function is only used by RocksDB WAL writing so it must sync data.

This fixes ceph#18338 and thus allows to actually set `bluefs_preextend_wal_files`
to true, gaining +100% single-thread write iops in disk-bound (HDD or bad SSD) setups.
To my knowledge it doesn't hurt performance in other cases.
Test it yourself on any HDD with `fio -ioengine=rbd -direct=1 -bs=4k -iodepth=1`.

Issue ceph#18338 is easily reproduced without this patch by issuing a `kill -9` to the OSD
while doing `fio -ioengine=rbd -direct=1 -bs=4M -iodepth=16`.

Fixes: https://tracker.ceph.com/issues/18338 https://tracker.ceph.com/issues/38559
Signed-off-by: Vitaliy Filippov <vitalif@yourcmc.ru>
(cherry picked from commit c703cf9)

Conflicts:
- path: src/os/bluestore/KernelDevice.cc
  comment: luminous has a single variable "fd_buffered" where master has an array "fd_buffereds"
@tchaikov tchaikov added this to the luminous milestone Aug 9, 2019
@smithfarm smithfarm added the core label Aug 26, 2019
@smithfarm smithfarm requested review from ifed01 and liewegas August 26, 2019 15:12
@yuriw
Copy link
Copy Markdown
Contributor

yuriw commented Oct 11, 2019

@yuriw yuriw merged commit b9c1d9f into ceph:luminous Oct 16, 2019
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.

6 participants