如何同时处理来自 Cassandra 的结果

How to concurrently process results from Cassandra

我们有 100 万条来自 Cassandra 的记录。为了减少处理时间,我们希望并行处理记录。

因此,工作流就像将 100 万条记录分成 100 个不相交的集合,每个工作人员处理一组记录。

我们选择的语言是 Golang。

实现该目的的相关framework/implementation是什么?

我在 ScyllaDB 工作 - Scylla 是一个兼容 Cassandra 的数据库。

我们有以下博文解释了如何运行 高效地跨集群进行全面扫描

https://www.scylladb.com/2017/02/13/efficient-full-table-scans-with-scylla-1-6/

详细介绍应该如何进行高效扫描的理论(如果您想获得最佳性能):

  • 根据 vnode 分配(节点的令牌分配)拆分范围
  • 运行同时查询多个
  • 添加一些随机性以确保查询分布在集群中

后续

https://www.scylladb.com/2017/03/28/parallel-efficient-full-table-scan-scylla/

有一个用 Go 编写的代码示例实现了这一点并针对 Scylla 进行了测试并且应该与 Cassandra 一起工作,因为它们与 CQL 二进制协议兼容。

PS:我希望也有一个cassandra的例子。