Skip to content

Instantly share code, notes, and snippets.

Project 3: Report

Collaborators:

  • Andrei Valasiuk (avalasiuk3)
  • Timothy Smith (tsmith484)

Intro (Your understanding)

In this project, a Paxos protocol was implemented to provide a fault-tolerant KeyValue store. The KeyValue store inherited the behavior from Project 2 and provided At Most Once semantics. The Paxos servers take part in the election of a distinguished proposer, a Leader, based on ballots to reduce the number of round trips and the contention over a Log slot. The communication among Paxos nodes takes place using Proposal Requests and Responses (P2A and P2B) and Heartbeat messages probing the Leader and Followers state. Paxos servers monitor the state of the key parties of the protocol and can make decisions about the view change amid failures and network partitions to ensure liveness. The implemented system guarantees the linearizability of the commands and the consistency of the data stored in the Paxos nodes.

Flow of Control & Code Design

Paxos Server

Project 3: Report

Collaborators:

  • Andrei Valasiuk (avalasiuk3)
  • Timothy Smith (tsmith484)

Intro (Your understanding)

In this project, a Paxos protocol was implemented to provide a fault-tolerant KeyValue store. The KeyValue store inherited the behavior from Project 2 and provided At Most Once semantics. The Paxos servers take part in election of a distinguished proposer, that is a Leader, based on ballots to reduce a number of round trips and the contention over a Log slot. The communication among Paxos nodes take place by means of Proposal Requests and

Project 2: Report

Intro (Your understanding)

In this project, a Primary-Backup protocol was implemented to provide a fault-tolerant KeyValue store. The KeyValue store inherited the behavior from Project 1 and provided At Most Once semantics. The Primary and Backup servers communicate using a Chain Replication protocol. In addition, the Primary server is responsible for managing the state transfer to the Backup server. And on top of that, there is a View Server that monitors the state of the parties and suggests an optimal view of the Primary and Backup in case of server failures and network partitions. The implemented system guarantees the linearizability of the commands and the consistency of the data stored in the Primary and Backup services.

let color = parseInt('ff10fe', 16);
console.log(color);
console.log([
color >> 16 & ((1 << 8) - 1),
color >> 8 & ((1 << 8) - 1),
color >> 0 & ((1 << 8) - 1),
]);
### DEPLOYS LAMBDA ###
# AVAILABLE LAMBDAS:
# - DEV_PARSE_ENRICH_DEVICE_JSON
# - PARSE_ENRICH_DEVICE_JSON
# - UPDOWNTIME_MC
pip install -r requirements.txt
CWD=$(pwd)
#!/usr/bin/env bash
# Makes unmaintainable Go plugin for phpstorm compatible with actual versions.
# https://github.com/go-lang-plugin-org/go-lang-idea-plugin
#
# Run ./go_compiler.sh path/to/downloaded/Go/plugin.zip version_of_phpstorm(e.g. 182, 173, etc.)
# For instance
# ./go_compiler.sh /home/user/downloads/Go-0.13.1947.zip 173
# New relevant file will be created in the same directory as initial archive. It will have name Go.zip.