Skip to content

Latest commit

 

History

History
30 lines (22 loc) · 1.14 KB

README.md

File metadata and controls

30 lines (22 loc) · 1.14 KB

Table of Contents

Introduction

distgraphia is an educational distributed system that is not fault-tolerant, with the aim of implementing the fundamental structure of a distributed system.

Build

git clone https://github.com/NJrslv/distgraphia.git
cd distgraphia
docker build -t distgraphia .
docker run distgraphia

Details

Object Placement

  • The distributed system is represented as a single process.
  • Clients and the network are located on the stack.
  • Each system node, embodied by a goroutine (method node.Run()) and its data, is isolated. The goroutine executes the node's functionality, and its stack holds a pointer to the data in the heap of the original process.
  • Nodes communicate using channels

Communication

  • Clients communicate with the network via the channel clientCh of requests, and they receive responses from request.replyCh. Nodes communicate through internal channels, while the network selects a coordinator for the client. image