Кассандра игнорирует FetchSize

У меня есть таблица Cassandra с 1000 строк. Я использую java-драйвер datastax 2.1.8 с Cassandra 2.1.3.

Я установил fetchSize равным 10 для подготовленного оператора выбора. Код на Скале:

val stmt = preparedStatement.bind()
stmt.setFetchSize(10)
if(nextPage != null )
  stmt.setPagingState(nextPage)

val rs = session.execute(stmt)
println( rs.all().count ) 
val nextPage = rs.getExecutionInfo().getPagingState()

Я запускаю это в цикле, каждый раз передавая значение nextPage, начиная с нулевого значения.

Но возвращаемый результат игнорирует fetchSize, хотя объект PageState создается в соответствии с fetchSize. Количество результатов для каждого запуска цикла составляет ... 1000 990 980 ... и так далее.

я хочу, чтобы драйвер каждый раз возвращал 10 результатов. Что мне здесь не хватает?


person p_a_ll_a_b    schedule 11.12.2015    source источник


Ответы (1)


Вызов all() автоматически израсходует все оставшиеся страницы. См. javadoc в fetchMoreResults для получения подробной информации о том, как вручную получить пакеты результатов.

person Stefan Podkowinski    schedule 11.12.2015
comment
Документ по подкачке драйвера также стоит посмотреть, чтобы узнать больше о том, как работает пейджинг datastax.github .io/java-driver/features/paging - person Andy Tolbert; 11.12.2015