-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
look into using Rayon for the IO thread pool. Can we associate an IoUring
instance with each thread? Can we publish tasks to other threads?
#103
Comments
Uring
instance with each thread? Can we publish tasks to other threads?
Can we associate exactly one
|
Uring
instance with each thread? Can we publish tasks to other threads?IoUring
](https://docs.rs/io-uring/latest/io_uring/struct.IoUring.html) instance with each thread? Can we publish tasks to other threads?
IoUring
](https://docs.rs/io-uring/latest/io_uring/struct.IoUring.html) instance with each thread? Can we publish tasks to other threads?IoUring
instance with each thread? Can we publish tasks to other threads?
OK, I've figured out how to spawn tasks into the current threadpool. Here's some code which I think provides the full framework for making this work. Some things that would need to be added to that code:
|
I was worrying about what would happen if we get to the end of the tasks in the queue, but we don't hang up the sender, so the last few CQEs will not be reaped. I think the solution is that the user always submits a vector of ops. Then, when we get to the end of the vec, we broadcast to all threads to finish their CQ. This is the only time when threads should |
I'll use this "issue" to document my research into using Rayon for the IO threadpool.
Why use Rayon's threadpool for the IO threadpool?
In #61, I'm talking myself into building my own work-stealing threadpool (using
crossbeam::deque
). But this hand-built threadpool is starting to sound a lot like Rayon's threadpool! So maybe I can just use Rayon's threadpool? (And hence save myself a bunch of work. And, more importantly, end up with code which is more robust & easier to maintain!)Related:
crossbeam::deque
& a pipeline of I/O steps #61ObjectStore
&async
/await
. Use Channels instead. Focus entirely (for now) on io_uring for local file storage. #93The text was updated successfully, but these errors were encountered: