-
Notifications
You must be signed in to change notification settings - Fork 491
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Query: Adds support for non streaming ORDER BY (#4362)
* Initial prep for adding a non streaming order by query pipline stage * Change TracingAsyncEnumerator to be an adapter class between ITracingAsyncEnumerator and IAsyncEnumerator * Move TracingAsyncEnumerator to product code * Change ITracingAsyncEnumerator.MoveNext to take a CancellationToken, thereby removing the awkward method SetCancellationToken from IQueryPipelineStage * draft implementation of non streaming order by pipeline stage * Fix bug that drops first record on an initialized page * Add a test class for non streaming order by unit tests * remove unnecessary usings * Add an emulator test for non streaming order by. Also lay groundwork for an alternative implementation for non streaming order by * Remove the ResponseLengthInBytes property from QueryPage. This was being calculated incorrectly, and seems to be unused to boot. * Add an ItemCount property to the Page class * Add a multi level heap implementation for non streaming order by * Add infrastructure for writing parity tests * Fix a bug that caused the page enumerator to be dropped when we reach flat heap sizze limit * When cloning OrderByQueryPartitionRangePageAsyncEnumerator as a fully buffered enumerator, make sure that we set the page size to maximum for the backend requests * Simplify the non streaming pipeline stage, and add performance test * Revert the changes for Headers.ItemCount Keep it as a string * Avoid an allocation each time the OrderByItems property of OrderByQueryResult is touched * Fix up the OrderByPipelineSatgeBenchmark to use fully materialized CosmosElements in the oages returned from MockContainer * Add a few more unit tests for non streaming order by * Add emulator tests for non streaming order by * Add a few more integration test cases * Fix up broken unit test * Add more test coverage for the non streaming order by * If there is no continuationtoken, assume that the response is streaming * Add stronger validation to the non streaming order by unit tests * Fix up broken unit tests to account for ItemCount * fix up plumbing for index utilization, and incorporate code review feedback * Minor clean up * revert bug introduced in pursuit of more elegant code :) * fix up broken unit test * Fix up broken perf test * Fix up broken IndexMetricsParserBaselineTest * Minor bug fixes for OrderByCrossPartitionEnumerator
- Loading branch information
Showing
109 changed files
with
8,445 additions
and
6,371 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.