Some questions from @Qwinn on Discord:
may I ask how many different executables this new method would entail, or if still 2, then how many processes would have to be launched using different parameters on those executables? It seems like it would increase the number, and therefore the complexity of both initial setup and the applying of updates (modifying more scripts to the new version #s, etc).
As mentioned in Notion document, I expect that the same farmer executable will gain cluster
subcommand like this:
subspace-farmer cluster <ROLE> <role-specific args...>
Depending on complexity might be possible to run multiple roles at once:
subspace-farmer cluster \
<ROLE1> <role-specific args...> \
-- \
<ROLE2> <role-specific args...> \
-- \
<ROLE3> <role-specific args...>
To be honest, if there is an advantage to the farmer in this seemingly more complex setup versus the prior idea of Supervisor Farmer, which seemed simpler to setup and maintain (and that should also provide the same scaling advantages that the cluster method would, at least as far as I can see), Iâm not yet seeing it. Perfectly willing to be convinced tho.
That is a valid feedback, if existing users canât be convinced, it will be even harder to explain to other users.
I think the biggest advantage of this cluster architecture is that you can scale and upgrade different components independently.
For example you might want to plot as fast as possible with GPUs (when available), but there is no need to have large stock of GPUs on mainnet just to maintain already plotted farms, you may even rent GPU server temporarily in case Internet connection allows you to download plotted sectors.
When plotting/replotting does happen, you will not have a situation where some machines are still plotting, while others are idling, youâll be able to utilize all the resources you have.
And in the future with multiple controllers youâll be able to have redundancy/failover to reduce downtime when you upgrade software.
Lastly originally supervisor was supposed to point to remote farms (like like to local disks), which while was easier to implement, meant that supervisor would need to restart every time new farm is added, while with cluster architecture different components are supposed to discover each other, so you can add and remove farms when you need them without restarting other components.