A GFS-alike DFS built for collaborative electronic sheet editing applications, providing developer-friendly SheetFile abstractions. See docs directory and reference above for more design and usage information.
This project is composed of several top-level packages:
fsclient: the client of our DFS, encapsulates all RPC interactions between Filesystem nodes. Applications should refer to this package.
master: codes of MasterNode of our filesystem. This package can be built into a standalone executable file, which should be run as a MasterNode process.
datanode: codes of DataNode. This package can be built into a standalone executable file, which should be run as a DataNode process.
protocol: defines gRPC protocol between the client and nodes of filesystem.
election: encapsulates common election algorithms using Zookeeper
common_journal: common journaling support for replication in a cluster using Kafka
tests: testing utils and integration tests.
Currently, this project can be deployed using
docker-compose. Example dockerfile and docker-compose configuration are provided under the root directory of the project. However, Kubernetes support is poor now.