SERIAL CONSISTENCY

Sets the serial consistency for a lightweight transaction (LWT).

Sets the serial consistency for lightweight transactions (LWTs). A LWT contains an IF EXISTS or IF NOT EXISTS clause. See Data consistency in the documentation.

When using a LWT:

  • Levels must be set for SERIAL CONSISTENCY and CONSISTENCY.
  • SERIAL CONSISTENCY can be set to SERIAL or LOCAL_SERIAL.
  • CONSISTENCY cannot be set to SERIAL or LOCAL_SERIAL.
Tip: To set the consistency level for non-LWTs, use the CONSISTENCY command.

Synopsis

SERIAL CONSISTENCY [ consistency_level ]
Table 1. Legend
Syntax conventions Description
UPPERCASE Literal keyword.
Lowercase Not literal.
Italics Variable value. Replace with a user-defined value.
[] Optional. Square brackets ( [] ) surround optional command arguments. Do not type the square brackets.
( ) Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.
| Or. A vertical bar ( | ) separates alternative elements. Type any one of the elements. Do not type the vertical bar.
... Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.
'Literal string' Single quotation ( ' ) marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.
{ key : value } Map collection. Braces ( { } ) enclose map collections or key value pairs. A colon separates the key and the value.
<datatype1,datatype2> Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.
cql_statement; End CQL statement. A semicolon ( ; ) terminates all CQL statements.
[--] Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.
' <schema> ... </schema> ' Search CQL only: Single quotation marks ( ' ) surround an entire XML schema declaration.
@xml_entity='xml_entity_type' Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files.
consistency_level

Consistency level. Can be set to SERIAL or LOCAL_SERIAL.

Examples

Show the current SERIAL CONSISTENCY status:

SERIAL CONSISTENCY
Reports the current setting:
Current serial consistency level set to SERIAL.
Set the serial consistency level with a value:
SERIAL CONSISTENCY LOCAL_SERIAL
Confirms the level is set:
Serial consistency level set to LOCAL_SERIAL.
Note: You can use the TRACE command to examine the difference between INSERT statements with and without IF EXISTS.

When using a LWT, you must have levels set for CONSISTENCY and SERIAL CONSISTENCY.

For example, write data using a LWT with IF NOT EXISTS to examine if the row already exists before performing the write:

CONSISTENCY ONE

SERIAL CONSISTENCY SERIAL

INSERT INTO cycling.cyclist_name (
  id, firstname, lastname
) VALUES (
  e7ae5cf3-d358-4d99-b900-85902fda9bb0, 'Alex', 'FRAME'
) 
IF NOT EXISTS;

If the record already exists then the write is not applied, as shown in the following result:

 [applied] | id                                   | firstname | lastname
-----------+--------------------------------------+-----------+----------
     False | e7ae5cf3-d358-4d99-b900-85902fda9bb0 |      Alex |    FRAME