Open amv opened 11 years ago
I propose that we scrap the whole linking idea (within pollbal) and just write simple files according to the responses of the polled services.
If some service returns that it serves pool "random" with version "xx", we would just create the following files in some directory:
random.pool -- contains nodes serving all versions of random
random.xx.pool -- contains only nodes serving xx of random
disabled_services -- contains nodes who failed to return proper data and nodes who are safely "leaving" the pool
and leave the pollbal's responsibility at that (in terms of creating files). If no nodes serve xx, the pool file for that should be deleted immediately.
When a /poll request returns something different than before, the files should be written (and deleted) accordingly and after all files have been written, an external script should be called to handle the new state. More about the script implementation and execution specifics in #6.
If we want to add inspectability we can create a log. There is no need to preserve old state.
But it should be noted that the previous state should stay on the FS as it was if the process crashes. It should stay like that until the process has been started again and has had the time to verify all services.
See the next comment for new details