[Bro-Dev] [Bro-Commits] [git/bro] topic/actor-system: First-pass broker-enabled Cluster scripting API + misc. (07ad06b)

Siwek, Jon jsiwek at illinois.edu
Thu Nov 2 10:22:31 PDT 2017


> On Nov 1, 2017, at 6:11 PM, Azoff, Justin S <jazoff at illinois.edu> wrote:
> 
> - a bif/function for efficiently broadcasting an event to all other workers (or data nodes)
>  -  If the current node is a data node, just send it to all workers
>  -  otherwise, round robin the event to a data node and have it send it to all workers minus the current node. 

In the case of broadcasting from a worker to all other workers, the reason why you relay via another node is only because workers are not connected to each other?  Do we know that a fully-connected cluster is a bad idea?  i.e. why not have a worker able to broadcast directly to all other workers if that’s what is needed?

> If &synchronized is going away script writers should be able to broadcast an event to all workers by doing something like
> 
>    Cluster::Broadcast(Cluster::WORKERS, event Foo(42));
> 
> This would replace a ton of code that currently uses things like worker2manager_events+manager2worker_events+ at if ( Cluster::local_node_type() == Cluster::MANAGER )

The successor to &synchronized was primarily intended to be the new data store stuff, so is there a way to map what you need onto that functionality?  Or can you elaborate on an example where you think this new broadcast pattern is a better way to replace &synchronized than using a data store?

- Jon



More information about the bro-dev mailing list