moby / libnetwork

networking for containers
Apache License 2.0
2.16k stars 881 forks source link

what's the number of serf instances for the notifyevent #1666

Closed huikang closed 7 years ago

huikang commented 7 years ago

May I know what is the number of serf nodes for the notifyevent [1]? In other words, what is the number of gossip nodes for such notifyevent or will this broadcast to all members? I am asking this because I would like to measure the propagation rate of attaching a endpoint to a container.

Is there any parameter to be tuned or set by serf? Thanks.

[1] https://github.com/docker/libnetwork/blob/master/drivers/overlay/ov_serf.go#L91

huikang commented 7 years ago

I probably find the answer, but not sure if it is correct. The default gossip number is 3 and defined at [1]. So the UserEvent will broadcast the message to the network via gossip. Could anyone confirm this? Thanks.

[1] https://github.com/hashicorp/memberlist/blob/master/config.go#L133

sanimej commented 7 years ago

Yes, the default gossip fan out is to 3 nodes. serf is implemented on top of memberlist which is the actual implementation of the modified SWIM protocol.

https://www.serf.io/docs/internals/gossip.html

User events sent by the overlay driver is to propagate the container up/down events.