caio / foca

mirror of https://caio.co/de/foca/
https://caio.co/de/foca/
Mozilla Public License 2.0
147 stars 8 forks source link

Adaptive max_transmissions #6

Closed jeromegn closed 2 years ago

jeromegn commented 2 years ago

Determining the value for max_transmissions should be dynamic based on the number of members. Probably based on the memberlist implementation!

Or it should be possible to update this value at runtime as more members are added to a cluster.

Currently I'm passing a NODE_COUNT env var (for now I know this before deploying anything) and using the formula from memberlist.

caio commented 2 years ago

Agreed! I like the simplicity of a static config but it makes sense to adapt based on current size; suspect_to_down_after probably needs to adapt too. Gonna give it some thought and get to it come next free time

caio commented 2 years ago

Took me a very long while to circle back here, apologies.

I'll be merging #7 for this today; I went for allowing to change settings at runtime instead of pulling the whole logic into Foca (a little more detail in the PR)

I think what's more interesting for your scenario of broadcasting custom data to a subset of the cluster would be (A) the ability to control the broadcast retransmission independently from the swim parameters; and (B) the ability to ask foca to broadcast to every member it can broadcast to at once. Both pretty easy to do once #7 lands- HMU if that's something you'd be keen on checking!

jeromegn commented 2 years ago

I'll have to update our crate, but looks like it should work! Thank you!