MyGossip

command module
v0.0.0-...-2b12960 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

README

Gossip DB

From smartphones, IoTs for homes and smart cities, we generate enormous amounts of data while constantly accessing services on the internet. These cloud-enabled services often consider connected devices as edges and need them to be in sync. Therefore, we need ways to support distributed systems that are highly fault-tolerant and available while abiding limited connectivity and resources.

We introduce a distributed database that is adaptable to systems with low network bandwidth and node stability. By relaxing the consistency requirement of a database we support systems that look for eventual consistency. In this session, you will learn the basics of distributed systems, its design concerning the CAP theory, and a brave usage of recent reconciliation protocols that revolutionizes the fundamentals of traditional databases. With this work, we hope to inspire and enable similar approaches that effectively decentralize workloads and aggregate the results.

Authors

@Bowen Song bowenson@usc.edu

@Yichen Ma yichenm2@uci.edu

@Fuyao Wang fuyao@bu.edu

Get Started

  • Firstly, clone the project

    $ git clone https://github.com/Never-M/MyGossip.git
    $ cd Networking-inside-of-Kubernetes
    
  • Make sure you have docker installed. Then use the script to start a basic 3-node cluster.

    $ ./start.sh
    Creating node3 ... done
    Creating node2 ... done
    Creating node1 ... done
    
  • Now you can see that the nodes are running:

    $ docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    2ef8ad29f27f        mygossip_node3      "sh"                35 seconds ago      Up 34 seconds       8001-8002/tcp       node3
    f62d1cacb4b8        mygossip_node2      "sh"                35 seconds ago      Up 34 seconds       8001-8002/tcp       node2
    1f56ee2657be        mygossip_node1      "sh"                35 seconds ago      Up 34 seconds       8001-8002/tcp       node1
    
  • Set up three terminals to get into the nodes seperately:

    $ docker exec -it node1 bash
    
  • Now you can have fun with Gossiper, enter the node's name and its IP to start, and type help for instructions:

    $ go run main.go
    >> Enter node name
    node1
    >> Enter node ip
    172.28.1.1
    
    [node1]: help
    >> Please use commands below:
    >> exit: Shut down and exit current node
    >> add: Add a peer to current node
    >> remove: remove a peer from current node
    >> show: Print out peers of current node
    >> put: Put a key & value pair to the database
    >> get: get the value of a specific key
    >> delete: delete a key from the database
    

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL