Cassandra批量查询与单插入性能

Pra*_*dey 6 java cassandra datastax

我用Cassandra java driver.

我每秒收到150k请求,我将其插入到具有不同分区键的8个表中.

我的问题是哪种方式更好:

  • 批量插入这些表
  • 逐个插入.

我问这个问题是因为,考虑到我的请求大小(150k),批处理听起来像是更好的选项,但因为所有表都有不同的分区键,批处理看起来很昂贵.

Cha*_*ity 12

请从以下链接查看我的答案:

Cassandra批处理查询具有不同分区键的表的性能

批次不是为了提高性能.它们用于确保原子性和隔离.

批处理对单个分区写操作有效.但批量经常被错误地用于尝试优化性能.根据批量操作,性能可能实际上恶化.

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

如果这些表之间不需要数据一致性,则使用单个插入.单个请求在节点之间正确分布或传播(取决于负载平衡策略).如果您担心请求处理和使用批处理,批处理将在协调器节点上负担如此多的额外工作,这将是无效的我猜:)