Project

General

Profile

Actions

Bug #20110

closed

RBD aio_ API does not provide awaiting of any completion from a list.

Added by Марк Коренберг almost 7 years ago. Updated over 6 years ago.

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

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Suppose I want to copy RBD image in parallel 10 streams. Well, I can run 10 aio_read() functions and associate them with 10 completions respectively. Next I want to wait until any of them is complete to run another read operation (to keep 10 running streams reading).

This is impossible now without using of threads. But what is purpose of these aio functions if I have to use threads ?

Other async frameworks (Python's asyncio, tornado, twisted, also Nodejs) have such functions. But CEPH does not.

So, I want to have function that will wait until all scheduled aio operations are complete. This function should also wait for aio operations that was added from callbacks associated with operations it waits for.

Another way is to have function that receives an array of completions and returns which one has completed.

Ideally, with optional timeout.

Actions

Also available in: Atom PDF