Skip to content

osd/bluestore: Actually wait until completion in write_sync#26868

Closed
vitalif wants to merge 1 commit intoceph:mimicfrom
vitalif:v13.2.4-sync-fix
Closed

osd/bluestore: Actually wait until completion in write_sync#26868
vitalif wants to merge 1 commit intoceph:mimicfrom
vitalif:v13.2.4-sync-fix

Conversation

@vitalif
Copy link
Copy Markdown
Contributor

@vitalif vitalif commented Mar 8, 2019

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

  • References tracker ticket
  • Updates documentation if necessary
  • Includes tests for new functionality or reproducer for bug

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>
@vitalif vitalif force-pushed the v13.2.4-sync-fix branch from dbf13cc to ea067f4 Compare March 9, 2019 15:05
@gregsfortytwo
Copy link
Copy Markdown
Member

Please don't open backport PRs until the fix has merged to master and the appropriate backport tickets exist. :)

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