Project

General

Profile

Subtask #4091

Feature #4089: rbd: improve small I/O performance

ObjectCacher: optionally make readx/writex calls never block

Added by Josh Durgin about 8 years ago. Updated almost 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

The idea is to prevent any aio calls from blocking client (i.e. qemu) threads.

This was what Sage was thinking as an implementation before, although I have doubts now that I type it out:

Rely on the client to only keep some number of I/Os outstanding, and attempt to keep memory usage low enough by blocking when the operation completes instead of when it is queued.


Related issues

Related to rbd - Bug #3737: Higher ping-latency observed in qemu with rbd_cache=true during disk-write Resolved 01/07/2013

Associated revisions

Revision 03ac01fa (diff)
Added by Josh Durgin almost 8 years ago

librbd: make aio_writes to the cache always non-blocking by default

When the ObjectCacher's writex blocks, it affects the thread requesting
the aio, which can cause starvation for other I/O when used by QEMU.

Preserve the old behavior via a config option in case this has any
bad side-effects, like too much memory usage under heavy write loads.

Fixes: #4091
Signed-off-by: Josh Durgin <>

Revision 3b0c565d (diff)
Added by Josh Durgin almost 8 years ago

librbd: make aio_writes to the cache always non-blocking by default

When the ObjectCacher's writex blocks, it affects the thread requesting
the aio, which can cause starvation for other I/O when used by QEMU.

Preserve the old behavior via a config option in case this has any
bad side-effects, like too much memory usage under heavy write loads.

Fixes: #4091
Signed-off-by: Josh Durgin <>
(cherry picked from commit 03ac01fa6a94fa7a66ede057e9267e0a562c3cdb)

History

#1 Updated by Josh Durgin almost 8 years ago

  • Status changed from New to In Progress

#2 Updated by Josh Durgin almost 8 years ago

  • Status changed from In Progress to 7

wip-rbd-cache-aio

#3 Updated by Josh Durgin almost 8 years ago

  • Status changed from 7 to Fix Under Review

#4 Updated by Josh Durgin almost 8 years ago

  • Status changed from Fix Under Review to Resolved
  • Assignee set to Josh Durgin
  • translation missing: en.field_remaining_hours set to 0.00

commit:95c4a81be1af193786d0483fcbe81104d3da7c40

Also available in: Atom PDF