GithubHelp home page GithubHelp logo

vananle / edgekv-jpdc-2020 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ksonbol/edgekv

0.0 0.0 0.0 14.16 MB

A Decentralized, Scalable, and Consistent Storage for the Edge

Shell 0.46% Ruby 43.47% Go 56.00% Makefile 0.07%

edgekv-jpdc-2020's Introduction

EdgeKV

A Go implementation of EdgeKV: a decentralized, scalable, and consistent storage system for the network edge.

Paper

EdgeKV: Decentralized, scalable, and consistent storage for the edge (Journal of Parallel and Distributed Computing)

Build

git clone https://github.com/ksonbol/edgekv.git $GOPATH/src/github.com/ksonbol/edgekv
cd $GOPATH/src/github.com/ksonbol/edgekv
make

Usage

  1. Start your etcd cluster. For a local cluster:

    etcd

  2. Start the edge nodes, specifying at least one of the etcd endpoints in the ENDPOINTS environment variable. For exampe, for a local cluster:

    ENDPOINTS="localhost:2379" ./bin/edge

  3. Start the gateway nodes, specifying the associated edge group address, addresses for gateway-to-gateway and gateway-to-edge communication, and the address of the helper node (if not first node in the ring).

    ./bin/gateway -edge_addr=EDGE_ADDR:EDGE_PORT -gateway_addr=ADDRESS:PORT -gateway_edge_addr=ADDRESS:PORT2 for first node

    ./bin/gateway -edge_addr=EDGE_ADDR2:EDGE_PORT2 -gateway_addr=ADDRESS2:PORT -gateway_edge_addr=ADDRESS2:PORT2 -helper_addr=ADDRESS:PORT for other nodes

  4. Start the client nodes, passing the edge server address as an argument. For example:

    ./bin/client -server_addr=localhost:2381

Since this is the default value, for a local cluster, you can just run:

./bin/client

Running on Grid'5000 with Distem

controller.rb file is the main entry to the experiments.

To show the usage help:

cd distem
ruby controller.rb -v
Usage: ruby controller.rb [options]
    -s, --setup                      perform platform setup
    -r, --reserve                    make node reservations in setup
    -d, --deploy                     deploy filesystem to pnodes in setup
    -p, --play                       start and test etcd and edge servers
    -l, --set-latency ENVIRONMENT    Set latencies for 'cloud' or 'edge' environments

Typical usage

  • Setup the system and reserve nodes.

    ruby controller.rb -rsd
    • Alternatively, you can setup the system with already existing reserved nodes (of type deploy).
    ruby controller.rb -sd
  • Set the latency for the required environment ("edge" or "cloud")

    ruby controller.rb -l edge
  • Start the etcd and edge servers

    ruby controller.rb -p
  • Change the latency setting to the other environment ("edge" or "cloud")

    ruby controller.rb -l cloud
  • Restart the etcd and edge servers in the new environment

    ruby controller.rb -p

edgekv-jpdc-2020's People

Contributors

ksonbol 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.