class Mongo::Cluster::Topology::LoadBalanced
Defines behavior for when a cluster is in load-balanced topology.
Constants
- NAME
The display name for the topology.
Public Instance Methods
Get the display name.
@return [ String ] The display name.
# File lib/mongo/cluster/topology/load_balanced.rb, line 30 def display_name self.class.name.gsub(/.*::/, '') end
Determine if the topology would select a readable server for the provided candidates and read preference.
@param [ Cluster ] cluster The cluster. @param [ ServerSelector ] server_selector The server
selector.
@return [ true ] A standalone always has a readable server.
# File lib/mongo/cluster/topology/load_balanced.rb, line 50 def has_readable_server?(cluster, server_selector = nil); true; end
Determine if the topology would select a writable server for the provided candidates.
@param [ Cluster ] cluster The cluster.
@return [ true ] A standalone always has a writable server.
# File lib/mongo/cluster/topology/load_balanced.rb, line 58 def has_writable_server?(cluster); true; end
Returns whether this topology is one of the replica set ones.
@return [ false ] Always false.
# File lib/mongo/cluster/topology/load_balanced.rb, line 63 def replica_set?; false; end
Select appropriate servers for this topology.
@param [ Array<Server> ] servers The known servers.
@return [ Array<Server> ] All of the known servers.
# File lib/mongo/cluster/topology/load_balanced.rb, line 70 def servers(servers, name = nil) servers end
Returns whether this topology is sharded.
@return [ false ] Always false.
# File lib/mongo/cluster/topology/load_balanced.rb, line 77 def sharded?; false; end
Returns whether this topology is Single.
@return [ true ] Always false.
# File lib/mongo/cluster/topology/load_balanced.rb, line 82 def single?; false; end
@note This method is experimental and subject to change.
@api experimental
# File lib/mongo/cluster/topology/load_balanced.rb, line 37 def summary details = server_descriptions.keys.join(',') "#{display_name}[#{details}]" end
Returns whether this topology is Unknown.
@return [ false ] Always false.
# File lib/mongo/cluster/topology/load_balanced.rb, line 87 def unknown?; false; end
Private Instance Methods
# File lib/mongo/cluster/topology/load_balanced.rb, line 91 def validate_options(options, cluster) if cluster.servers_list.length > 1 raise ArgumentError, "Cannot instantiate a load-balanced topology with more than one server in the cluster: #{cluster.servers_list.map(&:address).map(&:seed).join(', ')}" end super(options, cluster) end