Cassandra批量查询与单插入性能

我使用Cassandra java driver

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

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

  • 批量插入这些表
  • 一个接一个地插入

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

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

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

批次不是为了提高性能。 它们用于确保primefaces性和隔离。

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

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

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

批次对性能产生巨大影响。 最合适的溶剂,据我所知,每个分区键分成不同的列表,然后使用批处理语句。 您将看到对性能的巨大影响。