SQL Driver: Cassandra

Driver name cassandra.

Driver for Apache Cassandra CQL server.

To compile support for this driver, you need to have DataStax C/C++ driver and headers installed.

Supported Options

connect_timeout

Connection timeout.

dbname

Alias for keyspace.

debug_queries

Whether to log CQL queries.

Note

This setting behaves differently than other boolean settings. The feature is enabled by presence of the keyword in connect string, so to disable this feature, you must remove the keyword completely.

delete_consistency

Write consistency when deleting from the database.

delete_fallback_consistency

Write consistency when deleting from the database fails with primary consistency.

execution_retry_interval

If the driver supports speculative execution policy, configures constant speculative execution policy.

execution_retry_times

If the driver supports speculative execution policy, configures constant speculative execution policy.

heartbeat_interval
  • Default: 5s

  • Values: Time

How often to send keepalive packets to cassandra nodes.

host
  • Default: <empty>

  • Values: String

Host or IP address to connect. Can appear multiple times.

idle_timeout

How long to idle before disconnecting.

keyspace
  • Default: <empty>

  • Values: String

Specifies the keyspace name to use.

latency_aware_routing

When turned on, latency-aware routing tracks the latency of queries to avoid sending new queries to poorly performing Cassandra nodes.

Note

The feature is enabled by presence of the keyword in connect string, so to disable this feature, you must remove the keyword completely.

log_level
  • Default: warn

  • Values: critical, error, warn, info, debug, trace

Driver log level.

metrics
  • Default: <empty>

  • Values: string

Path where to write JSON metrics.

num_threads

Set number of IO threads to handle query requests.

page_size

When a query returns many rows, it can be sometimes inefficient to return them as a single response message. Instead, the driver can break the results into pages which get returned as they are needed.

This setting controls the size of each page.

Set to -1 to disable.

password
  • Default: <empty>

  • Values: String

Password for authentication.

port

CQL port to use.

read_consistency

Read consistency.

read_fallback_consistency

Read consistency if primary consistency fails.

request_timeout

How long to wait for a query to finish.

ssl_ca
  • Default: <empty>

  • Values: String

Path to SSL certificate authority file to use to validate peer certificate.

ssl_cert_file
  • Default: <empty>

  • Values: String

Path to a certificate file to use for authenticating against the remote server.

ssl_private_key_file
  • Default: <empty>

  • Values: String

Path to private key matching ssl_cert_file to use for authenticating against the remote server.

ssl_verify
  • Default: none

  • Values: none, cert, cert-ip, cert-dns

Configure the peer certificate validation method.

Options:

none

Disables validation.

cert

Validate that the certificate is valid.

cert-ip

Validate that the certificate is valid and has Common Name or Subject Alternate Name for the IP address.

cert-dns

Validate that the certificate is valid and has Common Name or Subject Alternate Name that matches PTR resource record for the server’s IP address.

user
  • Default: <empty>

  • Values: String

Username for authentication.

version
  • Default: Depends on driver version.

  • Values: v3, v4, v5

Cassandra driver version to use. It is good idea to specify this to avoid warnings about version handshake.

Note

If you want to use server-side prepared statements, you need to use at least v3.

warn_timeout

Emit warning if query takes longer than this.

write_consistency

Write consistency when updating or inserting to the database.

write_fallback_consistency

Write consistency when updating or inserting to the database fails with primary consistency.

Cassandra Consistency Values

Consistency levels in Cassandra can be configured to manage availability versus data accuracy.

Read Consistency

For read consistency the following values are supported:

any

Not supported for reads.

local-serial

Allows reading the current (and possibly uncommitted) state of data without proposing a new addition or update. If a SERIAL read finds an uncommitted transaction in progress, it will commit the transaction as part of the read. Local serial is confined to datacenter.

serial

Allows reading the current (and possibly uncommitted) state of data without proposing a new addition or update. If a SERIAL read finds an uncommitted transaction in progress, it will commit the transaction as part of the read.

one

Returns a response from the closest replica, as determined by the snitch.

two

Returns the most recent data from two of the closest replicas.

three

Returns the most recent data from three of the closest replicas.

local-quorum

Returns the record after a quorum of replicas in the current datacenter as the coordinator has reported.

quorum

Returns the record after a quorum of replicas from all datacenters has responded.

each-quorum

Not supported for reads.

all

Returns the record after all replicas have responded. The read operation will fail if a replica does not respond.

Write/Delete Consistency

For write and delete consistency the following values are supported:

any

At least one node must succeed in the operation.

local-serial

Not supported for writes.

serial

Not supported for writes.

one

Operation must be at least in commit log and one memory table of one replica.

two

Operation must be at least in commit log and one memory table of two replicas.

three

Operation must be at least in commit log and one memory table of three replicas.

local-quorum

A write must be written to the commit log and memory table on a quorum of replica nodes in the same datacenter as the coordinator.

quorum

A write must be written to the commit log and memory table on a quorum of replica nodes across all datacenters.

each-quorum

A write must be written to the commit log and memory table on a quorum of replica nodes in each datacenter.

all

A write must be written to the commit log and memtable on all replica nodes in the cluster for that partition.