Cassandra批量查询与单插入性能
我使用Cassandra java driver
。
我每秒收到150k请求,我将其插入到具有不同分区键的8个表中。
我的问题是哪种方式更好:
- 批量插入这些表
- 一个接一个地插入 。
我问这个问题是因为,考虑到我的请求大小(150k),批处理听起来像是更好的选项,但因为所有表都有不同的分区键,批处理看起来很昂贵。
请从以下链接查看我的答案:
Cassandra批处理查询具有不同分区键的表的性能
批次不是为了提高性能。 它们用于确保primefaces性和隔离。
批处理对单个分区写操作有效。 但批量经常被错误地用于优化性能。 根据批量操作,性能可能实际上恶化。
https://docs.datastax.com/en/cql/3.3/cql/cql_using/useBatch.html
如果这些表之间不需要数据一致性,则使用单个插入。 单个请求在节点之间正确分布或传播(取决于负载平衡策略)。 如果你担心请求处理和使用批处理,批处理将在协调器节点上负担这么多额外的工作,这将是无效的我猜:)
批次对性能产生巨大影响。 最合适的溶剂,据我所知,每个分区键分成不同的列表,然后使用批处理语句。 您将看到对性能的巨大影响。
- java.lang.UnsupportedClassVersionError:.class文件中的错误版本号
- PowerMockito .when()。thenReturn(),randomUUID没有返回预期值
- 线程“main”中的exceptionorg.apache.spark.SparkException:此JVM中只能运行一个SparkContext(参见SPARK-2243)
- 如何获得cassandra 2.2中的前5条记录
- 在cassandra中将json存储为文本vs blob的优缺点是什么?
- 如何使用Spark DataFrame计算Cassandra表的汇总统计量?
- 带有Spring Data和Cassandra @Query的IN子句
- 无法让Cassandra在Basic Applcation中工作
- 防止Cassandra转储hprof文件
- Spark与Cassandra输入/输出
- cassandra的cqlsh控制台中的操作超时错误