[Week 3/4] Evering Async Uring; Evering Driver with Lock; Evering Tokio #5
lvyuemeng
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Caveat
本人第三周因为学习物理,以及其他的脚本项目并没有完全推进该项目,因此第三周与第四周合并记录保证连贯性。
Summary
Evering Uring: A asynchronization of uring, thus we separate to
sync/asynchcompiled time choice.Evering Driver: Attempt to fully qualify the driver design, a quick read/write cache, currently we use
Lockrelated apito allow multi-thread case. However, it will become the bottleneck compared to Uring channel; construct
Bridgeto separatethe roles of
submitandComplete, thus we can separate backend and frontend of driver;SQEHandlea polymorphism to adapt multiple strategies for CQ.Evering Tokio: A basic example based on tokio runtime, shown a easier use.
Problem
The basic problem stems from the lock, a another choice is to use a lock free, no-std, arena/slab-like data structure.
However, current selections can't satisfy above, like
SkipList, which is not *slab-like`.Current choice is
ObjectPool, which is a data structure providing objects which lifetime carrys with the data structure itself.We can provide a multi-ownership for such object to record and modify it, since each of them is independent.
Beta Was this translation helpful? Give feedback.
All reactions