public static int getMaxRowsPerPage(RangeRequest rangeRequest) { if (rangeRequest.getBatchHint() != null) { return Math.max(1, rangeRequest.getBatchHint()); } else { return 100; } }
public CassandraRangePagingIterable( RowGetter rowGetter, SlicePredicate slicePredicate, ColumnGetter columnGetter, RangeRequest rangeRequest, Supplier<ResultsExtractor<T>> resultsExtractor, long timestamp) { this.rowGetter = rowGetter; this.slicePredicate = slicePredicate; this.columnGetter = columnGetter; this.rangeRequest = rangeRequest; this.resultsExtractor = resultsExtractor; this.timestamp = timestamp; batchHint = rangeRequest.getBatchHint() == null ? 100 : rangeRequest.getBatchHint(); selection = rangeRequest.getColumnNames().isEmpty() ? ColumnSelection.all() : ColumnSelection.create(rangeRequest.getColumnNames()); }
private Map<RangeRequest, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>> getFirstPages( TableReference tableRef, List<RangeRequest> requests, long timestamp) { List<String> subQueries = Lists.newArrayList(); List<Object> argsList = Lists.newArrayList(); for (int i = 0; i < requests.size(); i++) { RangeRequest request = requests.get(i); Pair<String, List<Object>> queryAndArgs = getRangeQueryAndArgs( tableRef, request.getStartInclusive(), request.getEndExclusive(), request.isReverse(), request.getBatchHint() == null ? 1 : request.getBatchHint(), i); subQueries.add(queryAndArgs.lhSide); argsList.addAll(queryAndArgs.rhSide); } String query = Joiner.on(") UNION ALL (").appendTo(new StringBuilder("("), subQueries).append(")").toString(); Object[] args = argsList.toArray(); TimingState timer = logTimer.begin("Table: " + tableRef.getQualifiedName() + " get_page"); try { return getFirstPagesFromDb(tableRef, requests, timestamp, query, args); } finally { timer.end(); } }
} else { boolean hasMore = request.getBatchHint() == null || request.getBatchHint() <= rowNames.size(); byte[] nextStartRow = RangeRequests.getNextStartRow(request.isReverse(), last); ret.put(request, SimpleTokenBackedResultsPage.create(nextStartRow, rows, hasMore));
if (request.getBatchHint() == null) { requestWithHint = request.withBatchHint(100); int batchSize = requestWithHint.getBatchHint(); final Iterator<RowResult<Value>> withLimit = Iterators.limit(range, batchSize); ImmutableList<RowResult<Value>> results = ImmutableList.copyOf(withLimit);
final long timestamp) { return run((Function<DSLContext, TokenBackedBasicResultsPage<RowResult<Set<Long>>, byte[]>>) ctx -> { int maxRows = rangeRequest.getBatchHint() == null ? 100 : (int) (1.1 * rangeRequest.getBatchHint()); Select<Record1<byte[]>> rangeQuery = getRangeQuery(ctx, tableRef, rangeRequest, timestamp, maxRows); Select<? extends Record> query;
final long timestamp) { return run((Function<DSLContext, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>>) ctx -> { int maxRows = rangeRequest.getBatchHint() == null ? 100 : (int) (1.1 * rangeRequest.getBatchHint()); Select<Record1<byte[]>> rangeQuery = getRangeQuery(ctx, tableRef, rangeRequest, timestamp, maxRows); Select<? extends Record> query;
Token token) { Set<byte[]> rows = Sets.newHashSet(); int maxRows = getMaxRowsFromBatchHint(range.getBatchHint());
PeekingIterator<RowResult<Value>> peekingValues = Iterators.peekingIterator(valueResults.get()); Iterator<List<RowResult<Set<Long>>>> tsBatches = Iterators.partition(tsResults.get(), range.getBatchHint()); Iterator<List<CandidateCellForSweeping>> candidates = Iterators.transform(tsBatches, tsBatch -> { List<CandidateCellForSweeping> candidateBatch = Lists.newArrayList();
public static int getBatchSize(RangeRequest rangeRequest) { return rangeRequest.getBatchHint() == null ? 100 : rangeRequest.getBatchHint(); }
public static int getMaxRowsPerPage(RangeRequest rangeRequest) { if (rangeRequest.getBatchHint() != null) { return Math.max(1, rangeRequest.getBatchHint()); } else { return 100; } }
public CassandraRangePagingIterable( RowGetter rowGetter, SlicePredicate slicePredicate, ColumnGetter columnGetter, RangeRequest rangeRequest, Supplier<ResultsExtractor<T>> resultsExtractor, long timestamp) { this.rowGetter = rowGetter; this.slicePredicate = slicePredicate; this.columnGetter = columnGetter; this.rangeRequest = rangeRequest; this.resultsExtractor = resultsExtractor; this.timestamp = timestamp; batchHint = rangeRequest.getBatchHint() == null ? 100 : rangeRequest.getBatchHint(); selection = rangeRequest.getColumnNames().isEmpty() ? ColumnSelection.all() : ColumnSelection.create(rangeRequest.getColumnNames()); }
private Map<RangeRequest, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>> getFirstPages( TableReference tableRef, List<RangeRequest> requests, long timestamp) { List<String> subQueries = Lists.newArrayList(); List<Object> argsList = Lists.newArrayList(); for (int i = 0; i < requests.size(); i++) { RangeRequest request = requests.get(i); Pair<String, List<Object>> queryAndArgs = getRangeQueryAndArgs( tableRef, request.getStartInclusive(), request.getEndExclusive(), request.isReverse(), request.getBatchHint() == null ? 1 : request.getBatchHint(), i); subQueries.add(queryAndArgs.lhSide); argsList.addAll(queryAndArgs.rhSide); } String query = Joiner.on(") UNION ALL (").appendTo(new StringBuilder("("), subQueries).append(")").toString(); Object[] args = argsList.toArray(); TimingState timer = logTimer.begin("Table: " + tableRef.getQualifiedName() + " get_page"); try { return getFirstPagesFromDb(tableRef, requests, timestamp, query, args); } finally { timer.end(); } }
} else { boolean hasMore = request.getBatchHint() == null || request.getBatchHint() <= rowNames.size(); byte[] nextStartRow = RangeRequests.getNextStartRow(request.isReverse(), last); ret.put(request, SimpleTokenBackedResultsPage.create(nextStartRow, rows, hasMore));
if (request.getBatchHint() == null) { requestWithHint = request.withBatchHint(100); int batchSize = requestWithHint.getBatchHint(); final Iterator<RowResult<Value>> withLimit = Iterators.limit(range, batchSize); ImmutableList<RowResult<Value>> results = ImmutableList.copyOf(withLimit);
Token token) { Set<byte[]> rows = Sets.newHashSet(); int maxRows = getMaxRowsFromBatchHint(range.getBatchHint());
PeekingIterator<RowResult<Value>> peekingValues = Iterators.peekingIterator(valueResults.get()); Iterator<List<RowResult<Set<Long>>>> tsBatches = Iterators.partition(tsResults.get(), range.getBatchHint()); Iterator<List<CandidateCellForSweeping>> candidates = Iterators.transform(tsBatches, tsBatch -> { List<CandidateCellForSweeping> candidateBatch = Lists.newArrayList();