Repository navigation
[vectorized] (olap) optimize BlockReader's performance - #7642
Conversation
| if (read_params.return_columns[j] == cid) { | ||
| if (j < _tablet->num_key_columns() || _tablet->keys_type() != AGG_KEYS) { | ||
| _normal_columns_idx.emplace_back(j); | ||
| _normal_columns.emplace_back(i); |
There was a problem hiding this comment.
_normal_columns.emplace_back(i); 这里原来是j,是不是手误写成i了?
There was a problem hiding this comment.
_normal_columns.emplace_back(i);这里原来是j,是不是手误写成i了?
i got it wrong
There was a problem hiding this comment.
Here should use the j not i. because the origin_return_columns may different with the return_columns. here need a map to insert right data in insert_data_normal
HappenLee
left a comment
There was a problem hiding this comment.
Proposed No 1 will cause error
| if (read_params.return_columns[j] == cid) { | ||
| if (j < _tablet->num_key_columns() || _tablet->keys_type() != AGG_KEYS) { | ||
| _normal_columns_idx.emplace_back(j); | ||
| _normal_columns.emplace_back(i); |
There was a problem hiding this comment.
Here should use the j not i. because the origin_return_columns may different with the return_columns. here need a map to insert right data in insert_data_normal
|
LGTM |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
Co-authored-by: zuochunwei <[email protected]>
Co-authored-by: zuochunwei <[email protected]>
Co-authored-by: zuochunwei <[email protected]>
Proposed changes
make _collect_iter as normal object instead of pointer object
replace _init_agg_state to avoid unnecessary condition branch
prefer to use reference instead of object copy
prefer to use emplace_back rather than push_back
pick the evaluation out from loop
ssb test indicate that this change have 5% improvement nearly(41 seconds reduce to 40.5 seconds)
test SQL: select sum(lo_revenue) as revenue from lineorder join dates on lo_orderdate = d_datekey where d_year = 1993 and lo_discount between 1 and 3 and lo_quantity < 25;
Close related #issue (replace it with issue number if it exists).
Describe the overview of changes, and introduce why we need it.
Types of changes
What types of changes does your code introduce to Doris?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...