在负面情况下,未记录和记录的Cassandra批次之间的差异

Nic*_*aro 10 cassandra

我理解Cassandra中LOGGED和UNLOGGED批次在原子性方面的基本区别.从本质上讲,LOGGED批次是原子的,而UNLOGGED则不是.这意味着LOGGED批处理中的所有语句都可以一起执行(或不执行).

在UNLOGGED批处理的情况下,如果在编写语句的写操作期间出现问题,我知道已经执行的语句没有回滚,但Cassandra是否通知驱动程序整批的失败?

mar*_*rkc 7

因此,记录的批处理使用日志来记录批处理操作,然后执行它,成功时将其从日志中删除。Unlogged 仍然是批处理操作,但没有日志的开销。少量记录是可以的,但是当你扩大规模时,这个批处理日志可能会增长并成为一个问题点。Datastax 文档实际上涵盖了批处理和一些示例:

https://docs.datastax.com/en/dse/6.0/cql/cql/cql_using/useBatch.html

良好批次示例

不良批次示例

一般来说,批处理有其用途,但我发现它们在过度使用时会导致性能问题,因为将它们分组到协调器节点上会付出代价。我经常向人们推荐这个著名的博客,它也概述了一些有关批次的有用信息