datastax c#driver IEnumerable <t> foreach optimize

时间:2016-05-14 18:40:36

标签: cassandra driver datastax

我正在使用CassandraCSharpDriver 3.0.4版本。我需要mapreduce我的表。我运行24个并行查询并获取24个IEnumerable列表。然后我将24个IEnumerable列表连接到一个IEnumerable列表。这些步骤不需要太多时间。大概是10秒钟。

当我开始预测具有10M记录的组合IEnumerable的代码时,问题就开始了。大约需要15分钟。如果我使用Parallel.Foreach并不重要。

我使用映射功能,驱动程序的Linq功能。在某种程度上,我需要优化映射系统,可能正在做一些manuel或做一些平行的事情。我需要建议。顺便说一句,我知道mapreduce的其他解决方案。我需要的确如此。

1 个答案:

答案 0 :(得分:1)

花了很多时间,并测试linq和普通会话执行后,我想出是什么导致了这一点。只运行execute方法需要多少个pagesize行。如果要迭代结果,则需要整行。在我的例子中,pagesize为5000,整行计数为1.5M,这就是迭代花费太多时间的原因。