Skip to content

koss-null/mycelium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mycelium

A realisation of distributed, peer-to-peer membership protocol with shared secret for joingin the cluster.

Core concepts:

  • No Master server, every node contains a full list of other nodes and actualises it.
  • Authentification through the shared secret: if the node knows the secret it is trusted.
  • Discovery in Local Network - UDP broadcase for initial communication.
  • Shared memvership list.
  • Failure detection: nodes ping each other, not responding nodes marked and then removed.

What parameters I am aiming for: (1) imposes a constant message load per group member; (2) detects a process failure in an (expected) constant time at some non-faulty process in the group; (3) provides a deterministic bound (as a function of group size) on the local time that a non-faulty process takes to detect failure of another process; (4) propagates membership updates, including information about failures, in infection-style; the dissemination latency in the group grows slowly (logarithmically) with the number of members; (5) provides a mechanism to reduce the rate of false positives by “suspecting” a process before “declaring” it as failed within the group.

Special thanks: SWIM protocol: https://www.cs.cornell.edu/projects/Quicksilver/public_pdfs/SWIM.pdf

About

embedded discovery service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors