When DataMiner nodes communicate with their local Cassandra database, which consistency level is used when executing read and write requests?
Overview of Cassandra supported consistency levels click here
Would there be a change in consistency between the legacy architecture where you would have a single Cassandra node per DMA node and the newly supported architecture where all the DMS nodes connect to a single Cassandra cluster? Or will always the same consistency be applied to the read and write requests executed by DataMiner software?
Reason for asking this information is that we are planning our Cassandra cluster architecture and want to know what the impact would be when opting to go for a Cassandra cluster multi datacenter configuration setup. More particularly to know if the extra latency between the two datacenters would have any impact on the read/write performance of the DataMiner nodes.
Hey Jeroen,
By default Dataminer will use ConsistencyLevel ONE for both single-node and failover setup. This was chosen to ensure database availability in the event of a hardware failure. This can be tweaked by adding the ConsistencyLevel="x" tag in the db.xml (see Configuring a remote cluster).
On CassandraCluster the default is Quorum/ONE and will indeed be impacted by latency between the datacenters, as a single request could ping servers inside both datacenters for a result. This is editable with the same tag as described above.
If you are worried about latency between datacenters, cassandra recommends using one of the LOCAL_* levels (LOCAL_QUORUM for example). This will keep a request inside the datacenter of the coordinator that received the request. This results in a single request only pinging the local datacenter and avoids the latency between datacenters for during requests. Different requests however can still be sent to the different datacenters giving a slight latency. However the later part can be mitigated by DataMiner depending on the implementation of the LoadBalancingPolicy in the driver.
Correct
thx Brent, that clarifies a lot. I assume so but just to be sure, DataMiner always uses the same consistency level for both read as well as write requests, correct?