Pu Wang
Pu Wang
Before fixing all cargo clippy warnings, it should have integration tests to protect the code. fuse_ll already have integration tests, so add to async fuse also.
memfs should be out of async_fuse. By doing so, async_fuse should define a FileSystem trait to expose FUSE operation methods to be implemented. However, async_fuse and memfs internally use async...
DatenLord may leverage Prometheus for monitoring and alerting. For logging, it may use ELK or similar tools.
DatenLord master nodes and slave nodes should expose bunch of metrics for monitoring the performance and behavior. The metric format should be compatible with Prometheus.
S3 will be used by a DatenLord slave node to load remote data from external device or sibling nodes, so it needs a S3 client.
Build async S3 server side API, maybe based on Rust async HTTP library [TIDE](../../../http-rs/tide).
DatenLord needs master nodes to store all the metadata about the files on each slave node. The master nodes might use RocksDB and Raft protocal to provide metadata service.
To use splice, sendfile, or mmap to support read zero copy as C libfuse does.
[rename](https://john-millikin.com/the-fuse-protocol#FUSE_RENAME2) is the most complicate functionality of a filesystem, and implement it in async style.