hello,

First read this from 2012
https://www.devco.net/archives/2012/06/19/mcollective-direct-addressing-mode.php

if you're just doing 'mco rpc rpcutil ping -W country=uk' for example
and with default configuration :

  1* it does a broadcast discovery 
  2* if it discovered less than a threshold nodes, it does direct
  3* else if more then threshold it does broadcast.  

In broadcast mode - no guarantee that only discovered nodes get the
request or that discovered nodes get the request.

Where 'direct' means, send a message to the node via the queue.  It
knows which nodes based on a previous broadcast discovery.

If you use --nodes, or -I without regular expressions, you're telling it
the nodes and other filters shouldn't really matter

In my case this is a impossible ask:
 
   % mco rpc rpcutil ping -I dev1.devco.net -W country=uk
   ....
   Finished processing 1 / 1 hosts in 141.07 ms

Because dev1 is not in the UK - but -I and --nodes and other plugins are
telling mcollective you've already resolved the discovery stuff and you
know what nodes you want to communicate with so it does so only on the
identities ignoring other filters.  Actually the decision is up to the
discovery plugin, and the plugin that drives --nodes and -I just ignores
other filters since you're telling it all it needs to know or care
about.

At any significant scale and whenever you want to have a reliable known
quantity of nodes (see my blog post), you need to not use broadcast
discovery at all.  Broadcast discovery and the broadcast communication
mode is like UDP in networking.  Just like with UDP you can build
reliability but you have to bring that with your own
consolidation/auditing, if you're not intending to build that you need
to look towards direct mode to achieve reliability.

If you want a known quantity of replies and audit those replies and know
they worked and you need to know what nodes should be there, you need to
use some discovery plugin (like your nodes.txt files).  Direct is
mcollectives TCP vs the UDP of broadcast.

Direct mode puts more pressure on your middleware, past a point you
either need to build smaller subcollectives, use smaller node selections
or if you make a giant one use batches.

So understanding that there are 2 means of communicating with the same
agents you need to consider your needs carefully and when to choose
reliability - and the extra overhead - over unreliability thats more
performant.

On Fri, Mar 10, 2017, at 03:30, [email protected] wrote:
> Hi,
> 
> I just want to understand about direct addressing mode vs broadcast mode.
> I 
> believe when we use direct addressing mode whatever mco query we are 
> running it will not do broadcast instead it will reach the particular 
> server. But how this works with based on facts filter. Correct if am
> wrong.
> 
> 
> Regards
> Ravi
> 
> -- 
> 
> --- 
> You received this message because you are subscribed to the Google Groups
> "mcollective-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.


-- 
R.I.Pienaar / www.devco.net / @ripienaar

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"mcollective-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to