distributed system for adaptative worker/process
Project description
References
DSat is a comprehensive distributed solution made of satellites communicating with a messaging system.
The basic:
a process is a directed graph with alternates fixed points (routers) and moving parts (workers);
the output of a worker are the input of the next worker;
the satelite set of worker/processor does the monitoring of the load of the pool of workers process and propagate messages outside the satelite;
the Status of a pipelined task can be followed either dynamically (cf status_for) or statically by requesting the State(s) object
the workers are encapsulated in a state_machine wrapper ensuring the reporting of the finite state machine corresponding to the task
the solution provides native load balancing with round robin
Content
Status handling
Status are stored in a backend that ensures we are threadsafe and that we have serialization.
State Machine
A simple wrapper around a process that provides communication around the execution and (should) handle time outs.
Messaging
normally not needed outside of satlive (except parse_event)
Ensures a consistency between message emission and reception
Topological connection settings
state_machine.get_connection set the connections of your step magically according to the imperative of the graph. Because, a distributed system is mainly processes connected in a directed graph.
Version
This a safe subset of http://www.python.org/dev/peps/pep-0440/#version-scheme Given it is broken for now I use a safe subset : Given a version X.Y.Z where X Y Z are strings by convention X and Y are numbers Z is alphanumeric lower case default “0”
X is the major version number. X+=1 <=> big change in philosophy API
Y is the minor version number. Y+=1 <=> API has changed (ascendant compatibility is broken)
Z is a bugfix/feature addition: it shall not break any program already using the API
V1 > V2 should be true has much as in number as in alphanumeric sens.
Z belongs to [a-z0-9]
X and Y belongs to [0-9]+
Yes we are limited to 36 versions per API if needed and you must extends Z remember to keep string and number sorting consistent.
Changes
0.5.0
As perfect as an alpha can be :)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.