Giter Site home page Giter Site logo

flocons's Introduction

Flocons

Distributed file system to handle billions of small files

Installation

go get -v -u github.com/t-mind/flocons
go run github.com/t-mind/flocons/main --config <config-file>

Examples of config file can be found in $GOPATH/rc/github.com/t-mind/flocons/resources

Test your application

List all files in a directory

curl http://localhost:<port>/files/<directory-path>

Read a file

curl http://localhost:<port>/files/<file-path>

Create a directory

curl -X POST -H "Content-Type:inode/directory" http://localhost:<port>/files/<directory-path>

Create a file

curl -d <content> -H "Content-Type:<content-type>" http://localhost:<port>/files/<file-path>

Or, if you have a file to upload

curl "--data=@<path-to-local-file>" -H "Content-Type:<content-type>" http://localhost:<port>/files/<file-path>

Configuration description

{
  "namespace": "namespace to separate multiple flocons cluster using the same zookeeper. default is flocons",
  "zookeeper": ["list of zookeeper addresses"],
  "node": {
    "name": "uniquely identifies the node",
    "port": "port for the http server. If not set, a random port will be used",
    "external_address": "address for other nodes to communicate",
    "shard": "shard name"
  },
  "storage": {
    "path": "where the files will be stored on the local system",
    "max_size": "max total size of the storage in format '1GB'",
    "max_container_size": "max size of one container inside a directory. Default is 100MB"
  }
}

To complete

Feature Included Implemented Comment

Components

Storage

Cluster topoly client

Dispatcher

Needs

  • Cluster topology client

Http server

Needs:

  • Storage
  • Cluster topology client
  • Dispatcher

Http file client

Needs

  • Cluster topology client

Fuse server

Needs

  • Http file client
  • Cluster topology client

Replication manager

Needs

  • Storage
  • Cluster topology client

flocons's People

Contributors

vincent-raman avatar

Stargazers

Guillaume Levasseur avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.