Feature #1836
filejournal: use async directio to write to the journal
0%
Description
Currently we're doing a sync direct io write, which means we pay a full rotation between each io.
History
#1 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_position set to 9
#2 Updated by Sage Weil almost 12 years ago
Say we have a cap of N aio ops, to prevent a stream of small ops resulting in a stream of tiny aio writes to the journal. (Okay, actually, is that actually bad? Maybe not!)
Anyway, assuming it is, and we implement a cap, we can do something like wait a minimum of (bytes_in_flight / max_journal_tput / N) seconds before dispatching the next aio write, which will make each write, on average, (current_throughput / N) bytes. This would avoid dispatching N 4k writes, hitting our max, and waiting until the first completes, but not having enough time to get the next io to the controller before the disk rotates again (since all N writes were small and right next to each other).
#3 Updated by Greg Farnum almost 12 years ago
Presumably AIO writes can be combined or reordered by the block device/interfaces, right? So having a bunch of them in-flight would be more likely to increase than decrease performance.
#4 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_position deleted (
30) - translation missing: en.field_position set to 28
#5 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_position deleted (
30) - translation missing: en.field_position set to 26
#6 Updated by Sage Weil almost 12 years ago
- Target version set to v0.41
- translation missing: en.field_position deleted (
28) - translation missing: en.field_position set to 103
#7 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_story_points set to 8
- translation missing: en.field_position deleted (
103) - translation missing: en.field_position set to 28
#8 Updated by Sage Weil almost 12 years ago
- Target version deleted (
v0.41) - translation missing: en.field_position deleted (
29) - translation missing: en.field_position set to 1
#9 Updated by Sage Weil almost 12 years ago
- Target version set to v0.41
- translation missing: en.field_position deleted (
1) - translation missing: en.field_position set to 29
#10 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_position deleted (
29) - translation missing: en.field_position set to 27
#11 Updated by Sage Weil almost 12 years ago
- Assignee set to Sage Weil
#12 Updated by Sage Weil almost 12 years ago
- Target version changed from v0.41 to v0.42
- translation missing: en.field_position deleted (
30) - translation missing: en.field_position set to 1
#13 Updated by Sage Weil almost 12 years ago
- Status changed from New to 4
#14 Updated by Sage Weil almost 12 years ago
- Status changed from 4 to 7
#15 Updated by Sage Weil almost 12 years ago
- Target version changed from v0.42 to v0.43
#16 Updated by Sage Weil almost 12 years ago
- translation missing: en.field_position deleted (
31) - translation missing: en.field_position set to 1
#17 Updated by Sage Weil almost 12 years ago
- Status changed from 7 to Resolved
- Target version deleted (
v0.43)