raokrutarth / manufacturing-os

A POC distributed operating system for geo-seperated automotive manufacturing
Creative Commons Zero v1.0 Universal
1 stars 0 forks source link

concensus on graph edges #15

Closed raokrutarth closed 4 years ago

raokrutarth commented 4 years ago

Make sure the correct edges are formed at the end of the phase 1 protocol where all nodes have agreed on what they consume and what they produce.

raokrutarth commented 4 years ago

assumes the leader is already known. e.g. lowest PID is the leader until leader election is complete

raokrutarth commented 4 years ago

bootstrap stage from doc.

raokrutarth commented 4 years ago

use/read the dict to make the worker nodes connect to the right nodes.

This is a prereq for @chuanqichen.

raokrutarth commented 4 years ago

How does a node know that it should connect to another? i.e. why should node x connect to y?

Assumption: each node, when it starts, knows the one thing each of the other nodes produce.

i.e. the task becomes, read the ItemDependency per node (in the worker) and make requests (could be; that only the leader can create the edges) to add edges in to the leader and verify the edges are added.

AndrejSafundzic commented 4 years ago

100 nodes lying there -> create the adjacency list -> create initial flow -> maximum utilization of base product

.......

I know what the dependencies are -> I need to create a flow.

......

......

......

......

  1. Create Cluster with dependencies & quantities.
AndrejSafundzic commented 4 years ago

Basecase returns differen blueprints. Have all requirements that makes sense! -> A req b, C req b

  1. Create a cluster usign nodes.SingleItemNodes
  2. Create a function that creates the edges in the shared dictionary
AndrejSafundzic commented 4 years ago

Next Step: Create bootstrap -> Leader: this is what we are doing -> ask for ack -> if not an ack -> recompute

raokrutarth commented 4 years ago

needs to be added to cluster wide flow using the flow APIs added in PR #41

AndrejSafundzic commented 4 years ago

Goal: Everyone is sending messages according to the flow

  1. Creation function that ClusterWideFLow from a Cluster Class in initial_flow()
  2. You can print out the current flow -> repr -> log.debug(cluster_flow_obj)
  3. Dependencies are in the Node subclass.