Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
Code Clarity
-
Low Hanging Fruit
-
All
-
None
Description
It has been identified during the review of CASSANDRA-18058 that the
KeyRangeConcatIterator could potentially stop using a PriorityQueue to maintain it's active list of sorted KeyRangeIterators.
The code suggested by maedhroz is as follows:
private int i = 0; ... protected void performSkipTo(PrimaryKey primaryKey) { while (i < toRelease.size()) { RangeIterator currentIterator = toRelease.get(i); if (currentIterator.getCurrent().compareTo(primaryKey) >= 0) break; if (currentIterator.getMaximum().compareTo(primaryKey) >= 0) { currentIterator.skipTo(primaryKey); break; } i++; } } ... protected PrimaryKey computeNext() { while (i < toRelease.size()) { RangeIterator currentIterator = toRelease.get(i); if (currentIterator.hasNext()) return currentIterator.next(); i++; } return endOfData(); }
It was decided that this change would need performance and correctness testing in it's own right would not be included in the original SAI CEP ticket.
Attachments
Issue Links
- Is contained by
-
CASSANDRA-19428 Clean up KeyRangeIterator classes
- Resolved
- is part of
-
CASSANDRA-19428 Clean up KeyRangeIterator classes
- Resolved