jodavaho / distributed-leader-election Goto Github PK
View Code? Open in Web Editor NEWAn implementation of GHS for distributed minimum spanning tree construction originally implemented at @nasajpl
License: Apache License 2.0
An implementation of GHS for distributed minimum spanning tree construction originally implemented at @nasajpl
License: Apache License 2.0
There should be two classes of fetches in get_deps:
And it could easily be extended to work on other systems, like alpine, which is especially useful for containers.
le/errno.h
le/seque*.h
le/ghs.h
etc.
Also:
src/lib/include/le/ghs.h
instead of include/le/ghs.h
In order to modularize the code and allow for leader election strategies and other MST-based algorithms, we should take all the Edge and peer (agent_t) information out of GhsState (including methods like set_edge
and check_index_of
), and create a "Graph" class that contains all that.
The tests executables are: tests/ghs-doctest
and demo/ghs-demo-doctest
There are some flags in place to compile with --coverage
, etc (see BUILD_COV=On
in CMakeLists.txt), but none of it is instrumented appropriately for CI testing.
In conjunction with #2 , create files required to make docker or other containers so that the demo code can easily be run on any system.
Currently we define a lot of different error codes for no reason. it's overly general and confusing and requires translating lots of error codes and lots of duplication.
Just have one errno for the whole library.
Our highest priority is ubuntu (.deb), but any system could be targeted for release. Creating just the build steps steps in a make_dep.sh
is fine.
It's not necessary to know the actual size, it's only necessary to be consistent with interfaces.
See #7
Some of the design decisions seem arbitrary. Document the forcing functions:
etc etc
As prep for removing (or making optional) any dependency on std::, we should create a OptionalStd.h, in which we use #define
and #ifdef
to guard all the uses of std::
For example:
#ifdef USE_STD
#include <limit>
namespace whatever{
const metric_t max_edge_metric = std::numeric_limits<metric_t>::max();
}
#else
#include <something_else>
namespace whatever{
const metric_t max_edge_metric = //some other semi-independent way of defining a max for metric_t that is tbd
}
For example:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.