Python Parallel Distributed File System (PPYDFS)
Project description
PPYDFS - Python Parallel Distributed File System
PPYDFS is a lightweight parallel distributed file system implemented in Python. It provides a reliable way to store and access files across multiple server nodes with automatic replication and failure recovery.
Features
- Distributed Storage: Files are split into blocks and distributed across multiple data servers
- Data Replication: Configurable replication factor ensures data redundancy and availability
- Fault Tolerance: Automatic block re-replication when servers fail
- Web Monitoring Interface: Real-time monitoring of system status and file distribution
- Command Line Interface: Easy-to-use commands for system management and file operations
Architecture
PPYDFS consists of three main components:
- Name Server: Manages file metadata and coordinates data servers
- Data Servers: Store the actual file blocks with replication
- Client: Interface for users to upload, download, and manage files
Installation
Install from PyPI
pip install pywebio
pip install ppydfs
Run from Code
git clone https://github.com/EasyCam/PPYDFS.git
cd PPYDFS
pip install -r requirements.txt
python install ppydfs
Usage
Starting a Name Server
python -m ppydfs nameserver [web_port]
Example:
python -m ppydfs nameserver 8080
This starts a name server with a web monitoring interface accessible at http://localhost:8080.
Starting a Data Server
python -m ppydfs dataserver [host] [port] [storage_dir] [name_server]
Example:
python -m ppydfs dataserver localhost 9001 ./storage localhost:9000
Client Operations
Upload a file
python -m ppydfs client upload myfile.txt [remote_name]
Download a file
python -m ppydfs client download remote_file [local_path]
List all files
python -m ppydfs client list
Delete a file
python -m ppydfs client delete remote_file
Web Interface
The web interface provides:
- Real-time monitoring of data servers
- File upload/download functionality
- File and block management
- System status information
Configuration
Default settings:
- Name server port: 9000
- Web interface port: 8080
- Replication factor: 2
- Block size: 4MB
License
GPLv3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ppydfs-1.1.tar.gz
(28.1 kB
view details)
File details
Details for the file ppydfs-1.1.tar.gz.
File metadata
- Download URL: ppydfs-1.1.tar.gz
- Upload date:
- Size: 28.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
132cb9d67e549f9477bb8e77b0e77228f71927c2272c560d958932a6fae04a17
|
|
| MD5 |
b752defd574ac42ac0905745e4788595
|
|
| BLAKE2b-256 |
620a9de2e446dd24d6c03eb334ae199fc3b955aa120c604993162691ce107b64
|