如何同时处理来自 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的例子。
我们有 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的例子。