SimpliDFS is a distributed file system project designed to manage files across multiple nodes. The system includes components for metadata management, file operations, message handling, and will soon include network communication between nodes for efficient file distribution and fault tolerance.
- Manages file metadata using
MetadataManager
. - Tracks file distribution and node associations.
- Thread-safe methods to add, retrieve, and remove metadata.
- Implements basic file operations:
createFile()
,writeFile()
, andreadFile()
. - Integrated with
MetadataManager
to keep metadata in sync with file operations.
- Uses a
Message
structure andMessageType
enum to facilitate communication. SerializeMessage()
andDeserializeMessage()
are used to prepare messages for node communication.- Metadata operations now notify nodes of updates.
- The core functionality for metadata and file system operations has been implemented.
- Basic message handling is integrated for metadata updates.
- Networking Integration: Integrate NetworkingLibrary to facilitate communication between nodes.
- Node Management: Implement node registration and heartbeat mechanisms.
- Fault Tolerance: Add replication of file chunks and handle node failures.
- Metadata Persistence: Develop a persistence layer for metadata.
- Extended Operations: Add support for file deletion and concurrency testing.
- Testing and Documentation: Expand unit tests and improve documentation.
- CMake 3.10 or later.
- A C++ compiler (e.g., GCC or Clang).
- Google Test for unit testing.
- Clone the repository:
git clone https://github.com/JacobBorden/SimpliDFS.git cd SimpliDFS
- Create a build directory and run CMake:
mkdir build && cd build cmake .. make
- Run the tests:
./test/SimpliDFSTests
Feel free to contribute to the project by opening issues, submitting pull requests, or suggesting new features.
This project is licensed under the MIT License.