Modules
Classes
Constants
A list of all supported request consistencies
- See Also:
[:any, :one, :two, :three, :quorum, :all, :local_quorum,
:each_quorum, :serial, :local_serial, :local_one].freeze
A list of all supported serial consistencies
- See Also:
[:serial, :local_serial].freeze
A list of all possible write types that a
Errors::WriteTimeoutError
can have.
[:simple, :batch, :unlogged_batch, :counter, :batch_log].freeze
[
:address_resolution,
:address_resolution_policy,
:auth_provider,
:client_cert,
:client_timestamps,
:compression,
:compressor,
:connect_timeout,
:connections_per_local_node,
:connections_per_remote_node,
:consistency,
:credentials,
:custom_types,
:datacenter,
:futures_factory,
:heartbeat_interval,
:hosts,
:idle_timeout,
:listeners,
:load_balancing_policy,
:logger,
:nodelay,
:reconnection_policy,
:retry_policy,
:page_size,
:passphrase,
:password,
:port,
:private_key,
:protocol_version,
:requests_per_connection,
:schema_refresh_delay,
:schema_refresh_timeout,
:server_cert,
:shuffle_replicas,
:ssl,
:synchronize_schema,
:timeout,
:trace,
:username
].freeze
Methods
Creates a Cluster instance
.
- Examples:
-
- Connecting to localhost
cluster = Cassandra.cluster
- Configuring
Cluster
cluster = Cassandra.cluster( username: username, password: password, hosts: ['10.0.1.1', '10.0.1.2', '10.0.1.3'] )
- Parameters:
-
Name Type Details options Hash
(defaults to: {}
) a customizable set of options - Keys for options:
-
Key Type Details :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 totrue
, 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. SeeToken-Aware Load Balancing Policy
.:connect_timeout Numeric
default: 10
connection timeout in seconds. Setting value tonil
will reset it to 5 seconds.:timeout Numeric
default: 10
request execution timeout in seconds. Setting value tonil
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
orOpenSSL::SSL::SSLContext
)default: false
enable default ssl authentication iftrue
(not recommended). Also accepts an initializedOpenSSL::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 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. Whennil
, 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. Whennil
, 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.:client_timestamps ( Boolean
orTimestampGenerator
)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 initializedTimestampGenerator
,:simple
(indicating an instance ofTimestampGenerator::Simple
), or:monotonic
(indicating an instance ofTimestampGenerator::TickingOnDuplicate
). If set to true, it defaults toTimestampGenerator::Simple
for all Ruby flavors except JRuby. On JRuby, it defaults toTimestampGenerator::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 tofalse
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 stillrefresh 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 Reconnection::Policy
default: Exponential
. Note that the default policy is configured with(0.5, 30, 2)
.:retry_policy Retry::Policy
default: Default Retry Policy
.:logger Logger
default: none
logger. aLogger
instance from the standard library or any object responding to standard log methods (#debug
,#info
,#warn
,#error
and#fatal
).:listeners Enumerable
<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 ofCONSISTENCIES
.: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 tonil
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 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 aPassword Provider
will be used automatically.:compressor Compression::Compressor
default: none
a custom compressor. Note that if you have specified:compression
, an appropriate compressor will be provided automatically.:address_resolution_policy 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 toPromise
api, which is not yet public. Things may change, use at your own risk. - Returns:
-
Type Details Cluster
a cluster instance
Creates a Cluster instance
.