Go check the doc.
Kiseki is my learning rust project, a simple 'distributed' fuse file system that is port of JuiceFS.
It's just a rust learning project
If you don't know juicefs very much, the following is the introduction of juicefs:
JuiceFS is an open-source, high-performance distributed file system designed for the cloud. By providing full POSIX
compatibility, it allows almost all kinds of object storage to be used as massive
local disks and to be mounted and accessed on different hosts across platforms and regions.
JuiceFS separates "data" and "metadata" storage. Files are split into chunks and stored in object storage like Amazon
S3. The corresponding metadata can be stored in various databases such as Redis, MySQL, TiKV, and SQLite, based on the
scenarios and requirements.
FUSE must be installed to build or run programs that use fuse-rs (i.e. kernel driver and libraries. Some platforms may
also require userland utils like fusermount
). A default installation of FUSE is usually sufficient.
To build fuse-rs or any program that depends on it, pkg-config
needs to be installed as well.
JuiceFS uses a pre-allocated memory and growable bytes pool as write buffer, but this pool is also used for make reading buffer.
Kiseki's write buffer pool is fixed-size, and it is consist of a in-memory bytes pool and a mmap file.
JuiceFs use disk-eviction mechinism to manage the writeback cache, in Kisekifs, it employs moka to implement the write back cache, much cleaner and efficient.
JuiceFs reorganize the slices into a linkedlist, kisekifs use rangemap to handle the trick part.
Totally not compliant with posix, go to the issue page check the details.
Kiseki is an independent learning project and is not endorsed by or affiliated with the Juice company.
Apache-2.0