[Performance](pipeline) support shared scan segment in mow (#23305)
This commit is contained in:
@ -443,7 +443,7 @@ Status NewOlapScanNode::_init_scanners(std::list<VScannerSPtr>* scanners) {
|
||||
}
|
||||
int scanners_per_tablet = std::max(1, 64 / (int)_scan_ranges.size());
|
||||
|
||||
bool is_duplicate_key = false;
|
||||
bool is_dup_mow_key = false;
|
||||
size_t segment_count = 0;
|
||||
std::vector<std::vector<RowSetSplits>> rowset_splits_vector(_scan_ranges.size());
|
||||
std::vector<std::vector<size_t>> tablet_rs_seg_count(_scan_ranges.size());
|
||||
@ -460,8 +460,10 @@ Status NewOlapScanNode::_init_scanners(std::list<VScannerSPtr>* scanners) {
|
||||
true);
|
||||
RETURN_IF_ERROR(status);
|
||||
|
||||
is_duplicate_key = tablet->keys_type() == DUP_KEYS;
|
||||
if (!is_duplicate_key) {
|
||||
is_dup_mow_key =
|
||||
tablet->keys_type() == DUP_KEYS || (tablet->keys_type() == UNIQUE_KEYS &&
|
||||
tablet->enable_unique_key_merge_on_write());
|
||||
if (!is_dup_mow_key) {
|
||||
break;
|
||||
}
|
||||
|
||||
@ -492,7 +494,7 @@ Status NewOlapScanNode::_init_scanners(std::list<VScannerSPtr>* scanners) {
|
||||
}
|
||||
}
|
||||
|
||||
if (is_duplicate_key) {
|
||||
if (is_dup_mow_key) {
|
||||
auto build_new_scanner = [&](const TPaloScanRange& scan_range,
|
||||
const std::vector<OlapScanRange*>& key_ranges,
|
||||
const std::vector<RowSetSplits>& rs_splits) {
|
||||
|
||||
Reference in New Issue
Block a user