All Projects → fangpin → miniDFS

fangpin / miniDFS

Licence: other
Simple version of Distributed File System on multiple threads

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to miniDFS

Go Fastdfs
go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic r…
Stars: ✭ 2,923 (+7592.11%)
Mutual labels:  file-system, distributed-file-system
dtm
A distributed transaction framework that supports multiple languages, supports saga, tcc, xa, 2-phase message, outbox patterns.
Stars: ✭ 6,110 (+15978.95%)
Mutual labels:  distributed
cruzdb
Append-only key-value database on a distributed shared-log
Stars: ✭ 47 (+23.68%)
Mutual labels:  distributed
ddrt
An elixir implementation of Rtree, optimized for fast updates.
Stars: ✭ 38 (+0%)
Mutual labels:  distributed
DBMSology
The Paper List on Design and Implmentation of System Software
Stars: ✭ 67 (+76.32%)
Mutual labels:  distributed
blobit
BlobIt - a Distributed Large Object Storage
Stars: ✭ 29 (-23.68%)
Mutual labels:  distributed
Singulink.IO.FileSystem
Reliable cross-platform strongly-typed file/directory path manipulation and file system access in .NET.
Stars: ✭ 16 (-57.89%)
Mutual labels:  file-system
field-manual
The Offical User's Guide to OrbitDB
Stars: ✭ 178 (+368.42%)
Mutual labels:  distributed
HurdleDMR.jl
Hurdle Distributed Multinomial Regression (HDMR) implemented in Julia
Stars: ✭ 19 (-50%)
Mutual labels:  distributed
ImplicitGlobalGrid.jl
Almost trivial distributed parallelization of stencil-based GPU and CPU applications on a regular staggered grid
Stars: ✭ 88 (+131.58%)
Mutual labels:  distributed
vue-fs
A Vue file management client, complete with a node/express/FS backend.
Stars: ✭ 40 (+5.26%)
Mutual labels:  file-system
tensorpeers
p2p peer-to-peer training of tensorflow models
Stars: ✭ 57 (+50%)
Mutual labels:  distributed
traffic
Massively real-time traffic streaming application
Stars: ✭ 25 (-34.21%)
Mutual labels:  distributed
money
Dapper Style Distributed Tracing Instrumentation Libraries
Stars: ✭ 65 (+71.05%)
Mutual labels:  distributed
infantry
Run MapReduce in user's browser.
Stars: ✭ 14 (-63.16%)
Mutual labels:  distributed
agent
hashtopolis.org
Stars: ✭ 19 (-50%)
Mutual labels:  distributed
nova
Web framework for Erlang.
Stars: ✭ 175 (+360.53%)
Mutual labels:  distributed
distkv
Distributed KV Storage System based on Raft and RocksDB, can be use to store small files, like images.
Stars: ✭ 50 (+31.58%)
Mutual labels:  distributed-file-system
iris
Distributed streaming key-value storage
Stars: ✭ 55 (+44.74%)
Mutual labels:  distributed
litchi
这是一款分布式的java游戏服务器框架
Stars: ✭ 97 (+155.26%)
Mutual labels:  distributed

miniDFS

Simple version of Distributed File System

Design a Mini Distributed File System (Mini-DFS), which contains

  • A client
  • A name server
  • Four data servers img

Mini-DFS is running through a process. In this process, the name server and data servers are different threads

Basic functions of Mini-DFS

  • Read/write a file
  • Upload a file: upload success and return the ID of the file
  • Read the location of a file based on the file ID and the offset

File striping

  • Slicing a file into several chunks
  • Each chunk is 2MB
  • Uniform distribution of these chunks among four data servers

Replication

  • Each chunk has three replications
  • Replicas are distributed in different data servers

Name Server

  • List the relationships between file and chunks
  • List the relationships between replicas and data servers
  • Data server management

Data Server

  • Read/Write a local chunk
  • Write a chunk via a local directory path

Client

  • Provide read/write interfaces of a file

Mini-DFS can show

  • Read a file (more than 7MB)
  • Via input the file and directory
  • Write a file (more than 3MB)
  • Each data server should contain appropriate number of chunks
  • Using MD5 checksum for a chunk in different data servers, the results should be the same
  • Check a file in (or not in) Mini-DFS via inputting a given directory
  • By inputting a file and a random offset, output the content

compile

make

run

./miniDFS
put source_file_path dest_file_path
ls
locate FileID Offset
fetch FileID Offset dest_file_path
...
read source_file_path dest_file_path
...
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].