acs::Cluster method broadcast (public)

 <instance of acs::Cluster[i]> broadcast args [ args... ]

Defined in packages/acs-tcl/tcl/cluster-procs.tcl

Send requests to all cluster peers.

Parameters:
args (required)

Testcases:
No testcase defined.
Source code:
if {[ns_ictl epoch] > 0} {
    catch {::throttle do incr ::count(cluster:broadcast)}
}

# Small optimization for cachingmode "none": no need to
# send cache flushing requests to nodes, when there is no
# caching in place.
#
if {[ns_config "ns/parameters" cachingmode "per-node"] eq "none"
    && [lindex $args 0] in {
        acs::cache_flush_pattern
        acs::cache_flush_all
        ns_cache}
} {
    #
    # If caching mode is none, it is expected that all
    # nodes have this parameter set. Therefore, there is no
    # need to communicate cache flushing commands.
    #
    return
}

if {[nsv_get cluster cluster_peer_nodes locations]} {
    #
    # During startup the throttle thread might not be started,
    # so omit these statistic values
    #
    if {[ns_ictl epoch] > 0} {
        foreach location $locations {
            catch {::throttle do incr ::count(cluster:sent)}
            set t0 [clock clicks -microseconds]
            :send $location {*}$args
            set ms [expr {([clock clicks -microseconds] - $t0)/1000}]
            catch {::throttle do incr ::agg_time(cluster:sent) $ms}
        }
    } else {
        foreach location $locations {
            :send $location {*}$args
        }
    }
}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: