Optimize agg with collation & Optimize mem utils#5834
Optimize agg with collation & Optimize mem utils#5834ti-chi-bot merged 21 commits intopingcap:masterfrom
Conversation
|
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. DetailsReviewer can indicate their review by submitting an approval review. |
Signed-off-by: Zhigao Tong <tongzhigao@pingcap.com>
|
/run-all-tests |
Coverage for changed filesCoverage summaryfull coverage report (for internal network access only) |
Signed-off-by: Zhigao Tong <tongzhigao@pingcap.com>
|
/hold |
|
/merge |
|
@solotzg: It seems you want to merge this PR, I will help you trigger all the tests: /run-all-tests You only need to trigger If you have any questions about the PR merge process, please refer to pr process. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
|
This pull request has been accepted and is ready to merge. DetailsCommit hash: ce367a6 |
Coverage for changed filesCoverage summaryfull coverage report (for internal network access only) |
|
/unhold |
|
/rebuild |
|
@solotzg: Your PR was out of date, I have automatically updated it for you. At the same time I will also trigger all tests for you: /run-all-tests If the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
Coverage for changed filesCoverage summaryfull coverage report (for internal network access only) |
Coverage for changed filesCoverage summaryfull coverage report (for internal network access only) |
This reverts commit dfac6a5.
What problem does this PR solve?
Issue Number: ref #5294
What is changed and how it works?
ITiDBCollator::compareFastPathandITiDBCollator::sortKeyFastPathto check bin collation as fast pathstd::unique_ptr<AggregationMethodMultiStringNoCache<AggregatedDataWithStringKey>> multi_key_string;to handle agg functions whose keys are all strings.inline_memcpy(libs/libcommon/include/common/memcpy.h) to accelerate memory copy for small buffmemcpywith__folly_memcpy(libs/libmemcpy/folly/memcpy.S)StringRefwith internal implementation.Benchmark
ENV
Query
Test memory compassion by string sort
MemUtils
Test memory copy
__folly_memcpy, benefited from avx2 instructions, performs better when string size is not small(>80 Bytes)inline_memcpyis better than original one(from Clickhouse).MemUtilsCopy_${min}_${max}_${align}_true_${loop}: generate 4095 string pairs with size [${min}, ${max}] and specific alignment, memory copy one by one for ${loop} timesTest memory comparison
MemUtilsCmp_${str-size}_${loop_times}: check mem-cmp for str for specific timesCheck List
Tests
Side effects
Documentation
Release note