systemReplication
Synopsis
system.graph('graph_name').systemReplication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 2 }")
Description
Create a new graph. The graph_name specified is used to create two DSE database keyspaces, graph_name and graph_name_system, and can only contain alphanumeric and underscore characters.
Examples
Create a new graph and set the graph_name replication configuration using replication()`as well as the graph_name_system configuration using `systemReplication()
.
DSE database settings for replication factor are used, either SimpleStrategy
for a single datacenter or NetworkTopologyStrategy
for multiple datacenters.
The default replication strategy for a multi-datacenter graph is NetworkTopologyStrategy
, whereas for a single datacenter, the replication strategy will default to SimpleStrategy
.
The number of nodes will determine the default replication factor:
number of nodes per datacenter | graph_name replication factor | graph_name_system replication factor |
---|---|---|
1-3 |
number of nodes per datacenter |
number of nodes per datacenter |
greater than 3 |
3 |
5 |
system.graph('food'). replication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 2 }"). systemReplication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 2 }"). ifNotExists().create()
The resulting list:
==>null
The system replication settings can be verified using the cqlsh
tool, running the CQL command DESCRIBE keyspace food_system
command:
DESCRIBE KEYSPACE food_system;
with a result:
CREATE KEYSPACE food_system WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1: '3', 'dc2' : 2 } AND durable_writes = true;
Because the graph’s schema is stored in graph_name_system, it is extremely important that the replication factor is set consistent with the table values above. If the graph’s schema is lost, it renders the entire graph inoperable. |
In addition to setting the replication factor for the graph_name_system
keyspace, the replication factor for the graph_name
must also be set.