Hi Onmstester,

Thank you all. Now I understand whether to use batch or asynchronous writes 
really depends on use case. Till now batch writes work for me in a 8 nodes 
cluster with over 500 million requests per day.

> Did you compare the cluster performance including blocked natives, dropped 
> mutations, 95 percentiles, cluster CPU usage, etc  in two scenarios (batch vs 
> single)? 
Although 500M per day is not so much for 8 nodes cluster (if the node spec is 
compliant with datastax recommendations) and async single statements could 
handle it (just demands high CPU on client machine), the impact of such things 
(non compliant batch statements annoying the cluster) would show up after some 
weeks, when suddenly a lot of cluster tasks need to be run simultaneously; one 
or two big compactions are running on most of the nodes, some hinted hand offs 
and cluster could not keep up and starts to became slower and slower. 
The way to prevent it sooner, would be keep the error counters as low as 
possible, things like blocked NTPs, dropped, errors, hinted hinted hand-offs, 
latencies, etc. 

I checked the error counters, so far so good, no blocked natives, and no 
dropped mutations. I use TWCS to avoid big compactions. My node has 4 cores and 
8G memory. In fact when I started to use Cassandra, I didn't know the 
difference between batch and asynchronous writes and my choosing batch write is 
coming from the experience of using Redis batch to avoid netwark overhead. I 
got your point and will keep an eye on the error counters stuff. Thank you.

Cheers,
-Simon



 

Reply via email to