Method: Cassandra.cluster
- Defined in:
- lib/cassandra.rb
.cluster(options = {}) ⇒ Cassandra::Cluster
Creates a Cluster instance.
Examples:
Connecting to localhost
Connecting to localhost
cluster = Cassandra.cluster
Configuring Cluster
Configuring Cluster
cluster = Cassandra.cluster(
username: username,
password: password,
hosts: ['10.0.1.1', '10.0.1.2', '10.0.1.3']
)
Parameters:
-
options
(Hash)
(defaults to: {})
—
a customizable set of options
Options Hash (options):
-
:hosts
(Array<String, IPAddr>)
— default:
['127.0.0.1']
—
a list of initial addresses. Note that the entire list of cluster members will be discovered automatically once a connection to any hosts from the original list is successful.
-
:port
(Integer)
— default:
9042
—
cassandra native protocol port.
-
:nodelay
(Boolean)
— default:
true
—
when set to
true
, disables nagle algorithm. -
:datacenter
(String)
— default:
nil
—
name of current datacenter. First datacenter found will be assumed current by default. Note that you can skip this option if you specify only hosts from the local datacenter in
:hosts
option. -
:shuffle_replicas
(Boolean)
— default:
true
—
whether replicas list found by the default Token-Aware Load Balancing Policy should be shuffled. See Token-Aware Load Balancing Policy.
-
:execution_profiles
(Hash<String|Symbol, ExecutionProfile>)
— default:
nil
—
Hash of Cassandra::Execution::Profiles that are available for client use (e.g. Cassandra::Session#execute, Cassandra::Session#execute_async, Cassandra::Session#prepare, and Cassandra::Session#prepare_async).
-
:connect_timeout
(Numeric)
— default:
10
—
connection timeout in seconds. Setting value to
nil
will reset it to 5 seconds. -
:timeout
(Numeric)
— default:
12
—
request execution timeout in seconds. Setting value to
nil
will remove request timeout. -
:heartbeat_interval
(Numeric)
— default:
30
—
how often should a heartbeat be sent to determine if a connection is alive. Several things to note about this option. Only one heartbeat request will ever be outstanding on a given connection. Each heatbeat will be sent in at least
:heartbeat_interval
seconds after the last request has been sent on a given connection. Setting value tonil
will remove connection timeout. -
:idle_timeout
(Numeric)
— default:
60
—
period of inactivity after which a connection is considered dead. Note that this value should be at least a few times larger than
:heartbeat_interval
. Setting value tonil
will remove automatic connection termination. -
:username
(String)
— default:
none
—
username to use for authentication to cassandra. Note that you must also specify
:password
. -
:password
(String)
— default:
none
—
password to use for authentication to cassandra. Note that you must also specify
:username
. -
:ssl
(Boolean, OpenSSL::SSL::SSLContext)
— default:
false
—
enable default ssl authentication if
true
(not recommended). Also accepts an initialized OpenSSL::SSL::SSLContext. Note that this option should be ignored if:server_cert
,:client_cert
,:private_key
or:passphrase
are given. -
:server_cert
(String)
— default:
none
—
path to server certificate or certificate authority file.
-
:client_cert
(String)
— default:
none
—
path to client certificate file. Note that this option is only required when encryption is configured to require client authentication.
-
:private_key
(String)
— default:
none
—
path to client private key. Note that this option is only required when encryption is configured to require client authentication.
-
:passphrase
(String)
— default:
none
—
passphrase for private key.
-
:compression
(Symbol)
— default:
none
—
compression to use. Must be either
:snappy
or:lz4
. Also note, that in order for compression to work, you must install 'snappy' or 'lz4-ruby' gems. -
:load_balancing_policy
(Cassandra::LoadBalancing::Policy)
—
default: token aware data center aware round robin.
-
:address_resolution
(Symbol)
— default:
:none
—
a pre-configured address resolver to use. Must be one of
:none
or:ec2_multi_region
. -
:connections_per_local_node
(Integer)
— default:
nil
—
Number of connections to open to each local node; the value of this option directly correlates to the number of requests the client can make to the local node concurrently. When
nil
, the setting is1
for nodes that use the v3 or later protocol, and2
for nodes that use the v2 or earlier protocol. -
:connections_per_remote_node
(Integer)
— default:
1
—
Number of connections to open to each remote node; the value of this option directly correlates to the number of requests the client can make to the remote node concurrently.
-
:requests_per_connection
(Integer)
— default:
nil
—
Number of outstanding requests to support on one connection. Depending on the types of requests, some may get processed in parallel in the Cassandra node. When
nil
, the setting is1024
for nodes that use the v3 or later protocol, and128
for nodes that use the v2 or earlier protocol. -
:protocol_version
(Integer)
— default:
nil
—
Version of protocol to speak to nodes. By default, this is auto-negotiated to the highest common protocol version that all nodes in
:hosts
speak. -
:allow_beta_protocol
(Boolean)
— default:
false
—
whether the driver should attempt to speak to nodes with a beta version of the newest protocol (which is still under development). USE WITH CAUTION!
-
:client_timestamps
(Boolean, Cassandra::TimestampGenerator)
— default:
false
—
whether the driver should send timestamps for each executed statement and possibly which timestamp generator to use. Enabling this setting helps mitigate Cassandra cluster clock skew because the timestamp of the client machine will be used. This does not help mitigate application cluster clock skew. Also accepts an initialized TimestampGenerator,
:simple
(indicating an instance of Cassandra::TimestampGenerator::Simple), or:monotonic
(indicating an instance of Cassandra::TimestampGenerator::TickingOnDuplicate). If set to true, it defaults to Cassandra::TimestampGenerator::Simple for all Ruby flavors except JRuby. On JRuby, it defaults to Cassandra::TimestampGenerator::TickingOnDuplicate. -
:synchronize_schema
(Boolean)
— default:
true
—
whether the driver should automatically keep schema metadata synchronized. When enabled, the driver updates schema metadata after receiving schema change notifications from Cassandra. Setting this setting to
false
disables automatic schema updates. Schema metadata is used by the driver to determine cluster partitioners as well as to find partition keys and replicas of prepared statements, this information makes token aware load balancing possible. One can still refresh schema manually. -
:schema_refresh_delay
(Numeric)
— default:
1
—
the driver will wait for
:schema_refresh_delay
before fetching metadata after receiving a schema change event. This timer is restarted every time a new schema change event is received. Finally, when the timer expires or a maximum wait time of:schema_refresh_timeout
has been reached, a schema refresh attempt will be made and the timeout is reset. -
:schema_refresh_timeout
(Numeric)
— default:
10
—
the maximum delay before automatically refreshing schema. Such delay can occur whenever multiple schema change events are continuously arriving within
:schema_refresh_delay
interval. -
:reconnection_policy
(Cassandra::Reconnection::Policy)
—
default: Exponential. Note that the default policy is configured with
(0.5, 30, 2)
. -
:retry_policy
(Cassandra::Retry::Policy)
—
default: Default Retry Policy.
-
:logger
(Logger)
— default:
none
—
logger. a Logger instance from the standard library or any object responding to standard log methods (
#debug
,#info
,#warn
,#error
and#fatal
). -
:listeners
(Enumerable<Cassandra::Listener>)
— default:
none
—
initial listeners. A list of initial cluster state listeners. Note that a
:load_balancing
policy is automatically registered with the cluster. -
:consistency
(Symbol)
— default:
:local_one
—
default consistency to use for all requests. Must be one of CONSISTENCIES.
-
:trace
(Boolean)
— default:
false
—
whether or not to trace all requests by default.
-
:page_size
(Integer)
— default:
10000
—
default page size for all select queries. Set this value to
nil
to disable paging. -
:credentials
(Hash{String => String})
— default:
none
—
a hash of credentials - to be used with credentials authentication in cassandra 1.2. Note that if you specified
:username
and:password
options, those credentials are configured automatically. -
:auth_provider
(Cassandra::Auth::Provider)
— default:
none
—
a custom auth provider to be used with SASL authentication in cassandra 2.0. Note that if you have specified
:username
and:password
, then a Password Provider will be used automatically. -
:compressor
(Cassandra::Compression::Compressor)
— default:
none
—
a custom compressor. Note that if you have specified
:compression
, an appropriate compressor will be provided automatically. -
:address_resolution_policy
(Cassandra::AddressResolution::Policy)
—
default: No Resolution Policy a custom address resolution policy. Note that if you have specified
:address_resolution
, an appropriate address resolution policy will be provided automatically. -
:futures_factory
(Object<#all, #error, #value, #promise>)
—
default: Future a futures factory to assist with integration into existing futures library. Note that promises returned by this object must conform to Promise api, which is not yet public. Things may change, use at your own risk.
Returns:
-
(Cassandra::Cluster)
—
a cluster instance
295 296 297 |
# File 'lib/cassandra.rb', line 295 def self.cluster(options = {}) cluster_async(options).get end |