-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Storage: optimize the overhead of late materialization #8730
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/run-build-release |
download tiflash binary(linux amd64) at http://fileserver.pingcap.net/download/builds/pingcap/test/tiflash/42abf9d842f22f8fd6eec62bfca6b6ffec3e405f/centos7/tiflash-linux-amd64.tar.gz |
f04fcf0
to
d9aeb5b
Compare
/run-build-release |
download tiflash binary(linux amd64) at http://fileserver.pingcap.net/download/builds/pingcap/test/tiflash/d9aeb5b908380a1f90a2b373bb55eabe224116b3/centos7/tiflash-linux-amd64.tar.gz |
/run-build-release |
download tiflash binary(linux amd64) at http://fileserver.pingcap.net/download/builds/pingcap/test/tiflash/c9140cf990bebb7aebcccf93124968f38d86c56b/centos7/tiflash-linux-amd64.tar.gz |
Signed-off-by: Lloyd-Pottiger <[email protected]>
Signed-off-by: Lloyd-Pottiger <[email protected]>
Signed-off-by: Lloyd-Pottiger <[email protected]>
c9140cf
to
9088a53
Compare
/run-all-tests |
/run-build-release |
download tiflash binary(linux amd64) at http://fileserver.pingcap.net/download/builds/pingcap/test/tiflash/9088a5355b4c89e2ee79484f70c8d490f7f08d47/centos7/tiflash-linux-amd64.tar.gz |
PR needs rebase. Instructions 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 kubernetes/test-infra repository. |
|
||
auto rest_column_stream | ||
= std::dynamic_pointer_cast<ConcatSkippableBlockInputStream<false>>(rest_column_stable_stream); | ||
rest_column_stream->appendChild(rest_column_delta_stream, segment_snap->delta->getRows()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use RUNTIME_CHECK
to check if rest_column_stream
is null for potential cast failure?
What problem does this PR solve?
Issue Number: close #8641
Problem Summary:
What is changed and how it works?
Previously, each time we call
LateMaterializationBlockInputStream::read()
, we only callfilter_column_stream->read()
once, which means if the filter can filter out a lot of rows, then the return block only contains few rows.Now, each time we call
LateMaterializationBlockInputStream::read()
, we will callfilter_column_stream->read()
so much as possible until the rows of return block is going to extendmax_block_rows
.rest_column_stream->readWithFilter
can be greatly reduce, and better batch.Other changes:
RowKeyOrderedBlockInputStream
, and useConcatSkippableBlockInputStream
instead.skipNextBlock
and related unit testsCheck List
Tests
Side effects
Documentation
Release note