Return-Path: disk_failure_policy
commit_failure_policy
prepared_statements_cache_size_mb
thrift_prepared_statements_cache_size_mb
key_cache_size_in_mb
key_cache_save_period
key_cache_keys_to_save
native_transport_max_frame_size_in_mb
native_transport_max_concurrent_connections
native_transport_max_concurrent_connections_per_ip
start_rpc
rpc_address
rpc_interface
rpc_interface_prefer_ipv6
rpc_port
broadcast_rpc_address
rpc_keepalive
rpc_server_type
rpc_min_threads
rpc_max_threads
rpc_send_buff_size_in_bytes
rpc_recv_buff_size_in_bytes
internode_send_buff_size_in_bytes
internode_recv_buff_size_in_bytes
thrift_framed_transport_size_in_mb
incremental_backups
snapshot_before_compaction
auto_snapshot
slow_query_log_timeout_in_ms
cross_node_timeout
streaming_keep_alive_period_in_secs
streaming_connections_per_host
phi_convict_threshold
endpoint_snitch
dynamic_snitch_update_interval_in_ms
dynamic_snitch_reset_interval_in_ms
dynamic_snitch_badness_threshold
request_scheduler
request_scheduler_options
request_scheduler_id
server_encryption_options
client_encryption_options
internode_compression
inter_dc_tcp_nodelay
tracetype_query_ttl
tracetype_repair_ttl
gc_log_threshold_in_ms
enable_user_defined_functions
enable_scripted_user_defined_functions
windows_timer_interval
batch_size_fail_threshold_in_kb
unlogged_batch_across_partitions_warn_threshold
compaction_large_partition_warning_threshold_mb
gc_log_threshold_in_ms
gc_warn_threshold_in_ms
max_value_size_in_mb
back_pressure_enabled
back_pressure_strategy
otc_coalescing_strategy
otc_coalescing_window_us
otc_coalescing_enough_coalesced_messages
otc_backlog_expiration_interval_ms
ideal_consistency_level
Default Value: AllowAllAuthorizer
@@ -599,9 +593,9 @@ data at CL.ONE!Policy for commit disk failures:
Default value (“auto”) is 1/256th of the heap or 10MB, whichever is greater
-thrift_prepared_statements_cache_size_mb
¶Maximum size of the Thrift prepared statement cache
-If you do not use Thrift at all, it is safe to leave this value at “auto”.
-See description of ‘prepared_statements_cache_size_mb’ above for more information.
-Default value (“auto”) is 1/256th of the heap or 10MB, whichever is greater
-key_cache_size_in_mb
¶Maximum size of the key cache in memory.
@@ -1068,8 +1055,7 @@ used to allow/disallow connections fromstart_native_transport
¶Whether to start the native transport server. -Please note that the address on which the native transport is bound is the -same as the rpc_address. The port however is different and specified below.
+The address on which the native transport is bound is defined by rpc_address.Default Value: true
native_transport_max_threads
¶This option is commented out by default. -The maximum threads for handling requests when the native transport is used. -This is similar to rpc_max_threads though the default differs slightly (and -there is no native_transport_min_threads, idle threads will always be stopped -after 30 seconds).
+The maximum threads for handling requests (note that idle threads are stopped +after 30 seconds so there is not corresponding minimum setting).Default Value: 128
Default Value: -1
rpc_address
¶The address or interface to bind the Thrift RPC service and native transport -server to.
+The address or interface to bind the native transport server to.
Set rpc_address OR rpc_interface, not both.
Leaving rpc_address blank has the same effect as on listen_address (i.e. it will be based on the configured hostname of the node).
@@ -1154,11 +1132,6 @@ address will be used. If true the first ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.Default Value: false
broadcast_rpc_address
¶This option is commented out by default.
@@ -1173,54 +1146,6 @@ be set.enable or disable keepalive on rpc/native connections
Default Value: true
rpc_server_type
¶Cassandra provides two out-of-the-box options for the RPC Server:
-The default is sync because on Windows hsha is about 30% slower. On Linux, -sync/hsha performance is about the same, with hsha of course using less memory.
-Alternatively, can provide your own RPC server by providing the fully-qualified class name -of an o.a.c.t.TServerFactory that can create an instance of it.
-Default Value: sync
-rpc_min_threads
¶This option is commented out by default.
-Uncomment rpc_min|max_thread to set request pool size limits.
-Regardless of your choice of RPC server (see above), the number of maximum requests in the -RPC thread pool dictates how many concurrent requests are possible (but if you are using the sync -RPC server, it also dictates the number of clients that can be connected at all).
-The default is unlimited and thus provides no protection against clients overwhelming the server. You are -encouraged to set a maximum that makes sense for you in production, but do keep in mind that -rpc_max_threads represents the maximum number of client requests this server may execute concurrently.
-Default Value: 16
-rpc_send_buff_size_in_bytes
¶This option is commented out by default.
-uncomment to set socket buffer sizes on rpc connections
-rpc_recv_buff_size_in_bytes
¶This option is commented out by default.
-internode_send_buff_size_in_bytes
¶This option is commented out by default.
@@ -1241,11 +1166,6 @@ and ‘man tcp’ Note that when setting this, the buffer size is limited by net.core.wmem_max and when not setting it it is defined by net.ipv4.tcp_wmemthrift_framed_transport_size_in_mb
¶Frame size for thrift (maximum message length).
-Default Value: 15
-incremental_backups
¶Set to true to have Cassandra create a hard link to each sstable @@ -1417,6 +1337,14 @@ Default value is 300s (5 minutes), which times out in 10 minutes by default
Default Value: 300
streaming_connections_per_host
¶This option is commented out by default.
+Limit number of connections per host for streaming +Increase this when you notice that joins are CPU-bound rather that network +bound (for example a few nodes with big files).
+Default Value: 1
+phi_convict_threshold
¶This option is commented out by default.
@@ -1508,64 +1436,6 @@ expressed as a double which represents a until the pinned host was 20% worse than the fastest.Default Value: 0.1
request_scheduler
¶request_scheduler – Set this to a class that implements -RequestScheduler, which will schedule incoming client requests -according to the specific policy. This is useful for multi-tenancy -with a single Cassandra cluster. -NOTE: This is specifically for requests from the client and does -not affect inter node communication. -org.apache.cassandra.scheduler.NoScheduler - No scheduling takes place -org.apache.cassandra.scheduler.RoundRobinScheduler - Round robin of -client requests to a node with a separate queue for each -request_scheduler_id. The scheduler is further customized by -request_scheduler_options as described below.
-Default Value: org.apache.cassandra.scheduler.NoScheduler
-request_scheduler_options
¶This option is commented out by default.
-Scheduler Options vary based on the type of scheduler
-Default Value (complex option):
-# throttle_limit: 80
-# default_weight: 5
-# weights:
-# Keyspace1: 1
-# Keyspace2: 5
-
request_scheduler_id
¶This option is commented out by default. -request_scheduler_id – An identifier based on which to perform -the request scheduling. Currently the only valid option is keyspace.
-Default Value: keyspace
-server_encryption_options
¶Enable or disable inter-node encryption @@ -1653,13 +1523,6 @@ latency if you block for cross-datacente
tracetype_repair_ttl
¶Default Value: 604800
gc_log_threshold_in_ms
¶This option is commented out by default.
-By default, Cassandra logs GC Pauses greater than 200 ms at INFO level -This threshold can be adjusted to minimize logging if necessary
-Default Value: 200
-enable_user_defined_functions
¶If unset, all GC Pauses greater than gc_log_threshold_in_ms will log at @@ -1755,11 +1618,19 @@ Caution should be taken on increasing th
Log a warning when compacting partitions larger than this value
Default Value: 100
gc_log_threshold_in_ms
¶This option is commented out by default.
+GC Pauses greater than 200 ms will be logged at INFO level +This threshold can be adjusted to minimize logging if necessary
+Default Value: 200
+gc_warn_threshold_in_ms
¶This option is commented out by default.
GC Pauses greater than gc_warn_threshold_in_ms will be logged at WARN level -Adjust the threshold based on your application throughput requirement -By default, Cassandra logs GC Pauses greater than 200 ms at INFO level
+Adjust the threshold based on your application throughput requirement. Setting to 0 +will deactivate the feature.Default Value: 1000
otc_coalescing_strategy
¶This option is commented out by default.
+Coalescing Strategies # +Coalescing multiples messages turns out to significantly boost message processing throughput (think doubling or more). +On bare metal, the floor for packet processing throughput is high enough that many applications won’t notice, but in +virtualized environments, the point at which an application can be bound by network packet processing can be +surprisingly low compared to the throughput of task processing that is possible inside a VM. It’s not that bare metal +doesn’t benefit from coalescing messages, it’s that the number of packets a bare metal network interface can process +is sufficient for many applications such that no load starvation is experienced even without coalescing. +There are other benefits to coalescing network messages that are harder to isolate with a simple metric like messages +per second. By coalescing multiple tasks together, a network thread can process multiple messages for the cost of one +trip to read from a socket, and all the task submission work can be done at the same time reducing context switching +and increasing cache friendliness of network message processing. +See CASSANDRA-8692 for details.
+Strategy to use for coalescing messages in OutboundTcpConnection. +Can be fixed, movingaverage, timehorizon, disabled (default). +You can also specify a subclass of CoalescingStrategies.CoalescingStrategy by name.
+Default Value: DISABLED
+otc_coalescing_window_us
¶This option is commented out by default.
+How many microseconds to wait for coalescing. For fixed strategy this is the amount of time after the first +message is received before it will be sent with any accompanying messages. For moving average this is the +maximum amount of time that will be waited as well as the interval at which messages must arrive on average +for coalescing to be enabled.
+Default Value: 200
+otc_coalescing_enough_coalesced_messages
¶This option is commented out by default.
+Do not try to coalesce messages if we already got that many messages. This should be more than 2 and less than 128.
+Default Value: 8
+otc_backlog_expiration_interval_ms
¶This option is commented out by default.
+How many milliseconds to wait between two expiration runs on the backlog (queue) of the OutboundTcpConnection. +Expiration is done if messages are piling up in the backlog. Droppable messages are expired to free the memory +taken by expired messages. The interval should be between 0 and 1000, and in most installations the default value +will be appropriate. A smaller value could potentially expire messages slightly sooner at the expense of more CPU +time and queue contention while iterating the backlog of messages. +An interval of 0 disables any wait time, which is the behavior of former Cassandra versions.
+Default Value: 200
+ideal_consistency_level
¶This option is commented out by default.
+Track a metric per keyspace indicating whether replication achieved the ideal consistency +level for writes without timing out. This is different from the consistency level requested by +each write which may be lower in order to facilitate availability.
+Default Value: EACH_QUORUM
+The following describes the changes in each version of CQL.
+
and -
operations on dates (CASSANDRA-11936)currentTimestamp
, currentDate
, currentTime
and currentTimeUUID
functions (CASSANDRA-13132)ALTER TABLE
ALTER
has been removed; a column’s type may not be changed after creation (CASSANDRA-12443).ALTER TYPE
ALTER
has been removed; a field’s type may not be changed after creation (CASSANDRA-12443).GROUP BY
(CASSANDRA-10707).DEFAULT UNSET
option for INSERT JSON
to ignore omitted columns (CASSANDRA-11424).null
as a legal value for TTL on insert and update. It will be treated as equivalent tonull
as a legal value for TTL on insert and update. It will be treated as equivalent to inserting a 0 (CASSANDRA-12216).inserting a 0 (CASSANDRA-12216).
default_time_to_live
, then explicitly specifying a TTL of 0 in an INSERT
or
UPDATE
statement will result in the new writes not having any expiration (that is, an explicit TTL of 0 cancels
@@ -212,28 +230,28 @@ new UPDATE
statements and DELETE
statements, respectively. (CASSANDRA-7423).CAST
functions.DELETE
support for inequality expressions and IN
restrictions on any primary key columns.UPDATE
support for IN
restrictions on any primary key columns.TRUNCATE TABLE X
is now accepted as an alias for TRUNCATE X
.dateOf
and unixTimestampOf
.
CREATE INDEX
now supports indexing collection columns, including indexing the keys of map collections through the
@@ -254,8 +272,8 @@ deleted in DROP INDEX
now supports optionally specifying a keyspace.SELECT
statements now support selecting multiple rows in a single partition using an IN
clause on combinations
of clustering columns.uuid()
method has been added.DELETE ... IF EXISTS
syntax.CREATE INDEX
now allows specifying options when creating CUSTOM indexes.NaN
and Infinity
has been added as valid float constants. They are now reserved keywords. In the unlikely case
you we using them as a column identifier (or keyspace/table one), you will now need to double quote them.SELECT
statement now allows listing the partition keys (using the DISTINCT
modifier). See CASSANDRA-4536.c IN ?
is now supported in WHERE
clauses. In that case, the value expected for the bind variable
@@ -305,8 +323,8 @@ will be a list of whatever type It is now possible to use named bind variables (using :name
instead of ?
).
ALTER TABLE
DROP
option added.SELECT
statement now supports aliases in select clause. Aliases in WHERE and ORDER BY clauses are not supported.INSERT
statements optionally supports a IF NOT EXISTS
condition and UPDATE
supports IF
conditions.
SELECT
, UPDATE
, and DELETE
statements now allow empty IN
relations (see CASSANDRA-5626.'2'
as a valid value for an int
column (interpreting it has the equivalent of 2
), or 42
as a valid
@@ -352,8 +370,8 @@ as blobs, you should thus update your cl
now also allowed in select clauses. See the section on functions for details.timeuuid
values. Doing so was a bug in the sense
that date string are not valid timeuuid
, and it was thus resulting in confusing behaviors. However, the following new methods have been added to help
Modified: cassandra/site/publish/doc/4.0/cql/ddl.html
URL: http://svn.apache.org/viewvc/cassandra/site/publish/doc/4.0/cql/ddl.html?rev=1795259&r1=1795258&r2=1795259&view=diff
==============================================================================
--- cassandra/site/publish/doc/4.0/cql/ddl.html (original)
+++ cassandra/site/publish/doc/4.0/cql/ddl.html Tue May 16 02:01:22 2017
@@ -147,6 +147,7 @@
Warning
Since Cassandra 3.0, compact tables have the exact same layout internally than non compact ones (for the
same schema obviously), and declaring a table compact only creates artificial limitations on the table definition
-and usage that are necessary to ensure backward compatibility with the deprecated Thrift API. And as COMPACT
+and usage. It only exists for historical reason and is preserved for backward compatibility And as
COMPACT
STORAGE
cannot, as of Cassandra 4.0, be removed, it is strongly discouraged to create new table with the
COMPACT STORAGE
option.
A compact table is one defined with the COMPACT STORAGE
option. This option is mainly targeted towards backward
-compatibility for definitions created before CQL version 3 (see www.datastax.com/dev/blog/thrift-to-cql3 for more details) and shouldn’t be used for new tables. Declaring a
-table with this option creates limitations for the table which are largely arbitrary but necessary for backward
-compatibility with the (deprecated) Thrift API. Amongst those limitation:
A compact table is one defined with the COMPACT STORAGE
option. This option is only maintained for backward
+compatibility for definitions created before CQL version 3 and shouldn’t be used for new tables. Declaring a
+table with this option creates limitations for the table which are largely arbitrary (and exists for historical
+reasons). Amongst those limitation:
Altering an existing table uses the ALTER TABLE
statement:
alter_table_statement ::= ALTER TABLEtable_name
alter_table_instruction
-alter_table_instruction ::= ALTERcolumn_name
TYPEcql_type
- | ADDcolumn_name
cql_type
( ','column_name
cql_type
)* +alter_table_instruction ::= ADDcolumn_name
cql_type
( ','column_name
cql_type
)* | DROPcolumn_name
(column_name
)* | WITHoptions
For instance:
-ALTER TABLE addamsFamily ALTER lastKnownLocation TYPE uuid;
-
-ALTER TABLE addamsFamily ADD gravesite varchar;
+ALTER TABLE addamsFamily ADD gravesite varchar;
ALTER TABLE addamsFamily
WITH comment = 'A most excellent and useful table'
@@ -751,11 +749,6 @@ anticipate future usage when creating a
The ALTER TABLE
statement can:
-- Change the type of one of the column in the table (through the
ALTER
instruction). Note that the type of a column
-cannot be changed arbitrarily. The change of type should be such that any value of the previous type should be a valid
-value of the new type. Further, for clustering columns and columns on which a secondary
-index is defined, the new type must sort values in the same way the previous type does. See the type
-compatibility table below for detail on which type changes are accepted.
- Add new column(s) to the table (through the
ADD
instruction). Note that the primary key of a table cannot be
changed and thus newly added column will, by extension, never be part of the primary key. Also note that compact
tables have restrictions regarding column addition. Note that this is constant (in the amount of
@@ -781,75 +774,6 @@ convention. Please be aware that if you
Once a column is dropped, it is allowed to re-add a column with the same name than the dropped one
unless the type of the dropped column was a (non-frozen) column (due to an internal technical limitation).
-
-CQL type compatibility:¶
-CQL data types may be converted only as the following table.
-
-
-
-
-
-
-Existing type
-Can be altered to:
-
-
-
-timestamp
-bigint
-
-ascii, bigint, boolean, date, decimal, double, float,
-inet, int, smallint, text, time, timestamp, timeuuid,
-tinyint, uuid, varchar, varint
-blob
-
-int
-date
-
-ascii, varchar
-text
-
-bigint
-time
-
-bigint
-timestamp
-
-timeuuid
-uuid
-
-ascii, text
-varchar
-
-bigint, int, timestamp
-varint
-
-
-
-Clustering columns have stricter requirements, only the following conversions are allowed:
-
-
-
-
-
-
-Existing type
-Can be altered to
-
-
-
-ascii, text, varchar
-blob
-
-ascii, varchar
-text
-
-ascii, text
-varchar
-
-
-
-
CQL has the notion of a term, which denotes the kind of values that CQL support. Terms are defined by:
-term ::=constant
|literal
|function_call
|type_hint
|bind_marker
-literal ::=collection_literal
|udt_literal
|tuple_literal
-function_call ::=identifier
'(' [term
(','term
)* ] ')' -type_hint ::= '('cql_type
`)` term -bind_marker ::= '?' | ':'identifier
+term ::=constant
|literal
|function_call
|arithmetic_operation
|type_hint
|bind_marker
+literal ::=collection_literal
|udt_literal
|tuple_literal
+function_call ::=identifier
'(' [term
(','term
)* ] ')' +arithmetic_operation ::= '-'term
|term
('+' | '-' | '*' | '/' | '%')term
+type_hint ::= '('cql_type
`)` term +bind_marker ::= '?' | ':'identifier
A term is thus one of:
?
) or named (:some_name
). The latter form provides a more
Modified: cassandra/site/publish/doc/4.0/cql/dml.html
URL: http://svn.apache.org/viewvc/cassandra/site/publish/doc/4.0/cql/dml.html?rev=1795259&r1=1795258&r2=1795259&view=diff
==============================================================================
--- cassandra/site/publish/doc/4.0/cql/dml.html (original)
+++ cassandra/site/publish/doc/4.0/cql/dml.html Tue May 16 02:01:22 2017
@@ -143,6 +143,7 @@
BATCH
statement. To force a
particular operation ordering, you must specify per-operation timestamps.
+UNLOGGED
batches¶