dragonflyoss / nydus

Nydus - the Dragonfly image service, providing fast, secure and easy access to container images.
https://nydus.dev/
Apache License 2.0
1.22k stars 205 forks source link

Refactor the storage subsystem to support rust async io #507

Open jiangliu opened 2 years ago

jiangliu commented 2 years ago

Current nydus uses sync IO with multi-threading, which may uses too many threads. It would be great to switch to rust async IO model. We could do it step by step and start with the storage subsystem.

A proposed model as below 截屏2022-06-18 上午10 06 23

jiangliu commented 2 years ago

There is still one puzzle missing, read_vectored_at_volatile() is sync:( With https://github.com/cloud-hypervisor/fuse-backend-rs/pull/81 merged, we could use async_read_vectored_at_volatile to solve the last puzzle. 截屏2022-06-27 上午1 07 29