Per-node background refresher for the cluster node-info snapshot.
One instance runs per node, as a child of NebulaAPI.APIServer (which owns the
ETS cache). It rebuilds the node-info snapshot on a fixed interval and writes it
to ETS, so readers (get_nodes_info/0, hence every function-selector route)
never trigger an RPC fan-out themselves — they just read the latest snapshot.
This is what kills the thundering herd: refreshing is a single, periodic, per-node job rather than something each concurrent caller does on cache miss.
The flip side is a fixed background cost: every node refreshes on every interval,
whether or not anything reads the snapshot — i.e. one RPC fan-out per node per
interval, cluster-wide. With the 5s default this is negligible for the small
clusters NebulaAPI targets; raise nodes_info_refresh_interval if your cluster
is large or node selectors can tolerate staler info.
The interval is config :nebula_api, nodes_info_refresh_interval: <ms>
(default 5000), overridable per-instance with the :interval option (used in
tests).
Summary
Functions
Returns a specification to start this module under a supervisor.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.