为什么cassandra resultset的spliterator在与大小相关的查询中表现异常?

ffx8fchx  于 2021-06-13  发布在  Cassandra
关注(0)|答案(0)|浏览(237)

我编写了以下测试代码。

Spliterator<Row> myRsSpliterator = rs.spliterator();
log.info(String.format("Tanny: size if known: %d ; estimate size: %d", myRsSpliterator.getExactSizeIfKnown(), myRsSpliterator.estimateSize()));
Spliterator<Row> splitRows = myRsSpliterator.trySplit();
log.info(String.format("Tanny: split size: %d ; split estimate size: %d", splitRows.getExactSizeIfKnown(), splitRows.estimateSize()));
log.info(String.format("Tanny: orig split size: %d ; orig estimate size: %d", myRsSpliterator.getExactSizeIfKnown(), myRsSpliterator.estimateSize()));

我注意到的结果是,

Tanny: Init rs size: 4
Tanny: size if known: -1 ; estimate size: 9223372036854775807
Tanny: split size: 4 ; split estimate size: 4
Tanny: orig split size: -1 ; orig estimate size: 9223372036854775807

这意味着,一旦我分割了记录,所有的记录都会被第一次分割,原始的分割器会返回一个乱码大小。有人知道这件事吗?
我正在使用以下驱动程序,

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>3.1.0</version>
</dependency>

有人知道解决这个问题的方法吗?我想在并行线程中迭代结果,以加快处理速度。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题