Cassandra批量查询与单插入性能

时间:2017-03-21 14:49:47

标签: java cassandra datastax

我使用Cassandra java driver

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

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

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

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

2 个答案:

答案 0 :(得分:9)

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

Cassandra batch query performance on tables having different partition keys

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

  
    

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

  

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

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

答案 1 :(得分:0)

批处理对性能的影响很大。 据我了解,最适合您的解决方案是将每个分区键分成不同的列表,然后使用批处理语句。您将看到对性能的巨大影响。