STAR-762: Implement paging in bytes#223
Conversation
92be896 to
522a2c9
Compare
djatnieks
left a comment
There was a problem hiding this comment.
About 80-90% through all the changes; looks good so far. Want another round with the pagers to better understand them.
Current comments are minor suggestions/questions; wanted to provide some feedback along the way.
|
Previous guardrails porting included most of the changes from DB-3208, but I believe at least some of the paging changes from this commit are still needed: https://github.com/riptano/bdp/pull/15713/commits/fd60634683cbab4878548263bbc484063a65ee0f e.g. changes in |
|
@djatnieks I hope I've address all your comments |
djatnieks
left a comment
There was a problem hiding this comment.
Overall looks good, and the recent refactor and comments helped to understand the paging stuff better in general; thanks for that extra effort!
A few more minor comments, and just these changes I'd request to consider (summarized from individual comments):
- Align
GuardrailPagingTestwith the latest onbdp/6.8-cndbbranch and use same package as other guardrail tests. - Fix failing
GuardrailPagingTest.testQueryWithSmallBytePagesWorks(suggested fix inSelectStatement)
There was a problem hiding this comment.
Protect against currentPartitionKey == null?
I do not know usage well enough - asking out of caution.
djatnieks
left a comment
There was a problem hiding this comment.
One more comment to consider, otherwise good to go.
There was a problem hiding this comment.
Should this also include && !pageSize.isCompleted(query.limits().bytes(), PageSize.PageUnit.BYTES)?
There was a problem hiding this comment.
Actually, that previous change was wrong. So basically the check:
if (aggregationSpec == null && !pageSize.isCompleted(query.limits().count(), PageSize.PageUnit.ROWS))
return execute(query, options, queryState, selectors, nowInSec, userLimit, queryStartNanoTime);
should verify we paging should be applied at all. What we want to do there is to verify whether the requested page size is greater than the user provided limits. Say if the user specifies LIMIT 50 and the page size in rows is 100, then paging is unnecessary. However if the page size is provided in bytes, we cannot say anything about that. I've extracted that condition into a separate method and added a comment.
So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) STAR-762 Fix conflict in DunpTest with CASSANDRA-18215
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now.
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
Add page size in bytes flag to protocol Introduce PageSize object Protocol version changes No support for describe statement yet Simplify SecondaryIndexManager page calculation Add page size in bytes to DataLimits Refactor pagers Add / pull some tests Add some toString implementations Add PageSize to expected classes in DatabaseDescriptorRefTest Fix AggregationPartitionIterator So far we were passing the main page size to the AggregationPartitionIterator, which: - was pointless because there is no paging when we aggregate everything - it was actually harmful because AggregationPartitionIterator is a subclass of GroupByPartitionIterator and the later updates the subPager's limits with the minimum count of main page size and the number of remaining. It is correct if we use grouping aware limits, where count applies to the whole groups. But when we do aggregate everything, simply CQL limits are used and count limit applies to rows. Concluding, without fixing that we would limit the number of aggregated rows to the main page size which is not what we want (cherry picked from commit e11d716) (cherry picked from commit 13d4569) (cherry picked from commit 4f65564) (cherry picked from commit 9d084ea) (cherry picked from commit b0f05f2) (cherry picked from commit 8dd49b0) (cherry picked from commit 223d849) STAR-762 Fix PagingQueryTest with updated internal row size. STAR-762 Fix GuardrailPageWeightTest Align Guardrails and GuardrailsMBean page weight get/set warn/fail threshold methods with others that use DataStorageSpec values; STAR-762 Fix GuardrailPageWeightTest by removing code added during rebase that alters the data limit given by the user (e.g. LIMIT 100) to instead be the page size limit. Since that was different from existing CC or C* and broke the GuardrailPageWeightTest, is seems best to remove that for now. (Rebase of commit f19c921)
No description provided.