This commit is contained in:
77
README.rst
77
README.rst
@@ -2,6 +2,79 @@
|
||||
P2P Consumer Scheduler
|
||||
======================
|
||||
|
||||
Repository for the consumer's scheduler
|
||||
The scheduler part of a consumer system for the P2P storage system.
|
||||
|
||||
Produced by GoldenPogácsa Inc.
|
||||
|
||||
Basics
|
||||
------
|
||||
This is a component of a fully working consumer system.
|
||||
In order to setup a consumer you will need the consumer API as well and a Redis database.
|
||||
|
||||
This component faciliates the automatic synchronization between consumers.
|
||||
As well as detecting IP changes of the host which is running on.
|
||||
|
||||
Part of a system
|
||||
----------------
|
||||
|
||||
This component works as a complimentary part for the consumer API.
|
||||
|
||||
The information exchange between the API is solved by using a Common Redis database.
|
||||
This database must be shared between the API and the Scheduler instance.
|
||||
|
||||
Also the UUID is shared between the two components. This is obvious since they are essentially both parts of the same system.
|
||||
|
||||
|
||||
Communications
|
||||
--------------
|
||||
|
||||
The communication between other consumers and producers are solved by their REST API endpoints.
|
||||
|
||||
The follwing events will cause communication by this object:
|
||||
* A sychronization task
|
||||
* An IP address change detected
|
||||
|
||||
Since the communication between consumers happens regularly the IP address change event does not cause an immediate synchronization
|
||||
However communication originated by scheduler toward producers only happens when the IP address change is detected.
|
||||
|
||||
Synchronization
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
This call originated by the scheduler and happens regularly (See. configuration).
|
||||
|
||||
A synchronization task causes the followings:
|
||||
* Each consumer known by this consumer is checked for availability
|
||||
* Each consumer this consumer communicated with updated the availability of this consumer.
|
||||
* Each consumer which had no information of this consumer, now have.
|
||||
|
||||
Consumers learn about each other, and their IP addresses (and changes) during a synchronization.
|
||||
|
||||
Called URL::
|
||||
|
||||
http://<consumer ip>/sync
|
||||
|
||||
Body::
|
||||
|
||||
{
|
||||
"uuid" : "str: LOCAL_UUID"
|
||||
}
|
||||
|
||||
|
||||
IP update
|
||||
~~~~~~~~~
|
||||
|
||||
This communication is originated by the scheduler when an IP address change is detected.
|
||||
|
||||
This call is used to let producers immanently know about an IP change of their consumer, so that they can converge faster.
|
||||
|
||||
Called URL::
|
||||
|
||||
http://<producer ip>/ip
|
||||
|
||||
Body::
|
||||
|
||||
{
|
||||
"uuid" : "str: LOCAL_UUID",
|
||||
"ip": "str: provided by param"
|
||||
}
|
||||
|
||||
Functionality: updates the database of the available consumers periodically
|
||||
|
||||
Reference in New Issue
Block a user