[FEAT MERGE] merge transfer
Co-authored-by: wxhwang <wxhwang@126.com> Co-authored-by: godyangfight <godyangfight@gmail.com> Co-authored-by: Tyshawn <tuyunshan@gmail.com>
This commit is contained in:
@ -144,7 +144,7 @@ int ObMultipleMerge::init(
|
||||
unprojected_row_.count_ = 0;
|
||||
get_table_param_ = get_table_param;
|
||||
if (OB_SUCC(ret)) {
|
||||
const ObTableReadInfo *read_info = access_param_->iter_param_.get_read_info();
|
||||
const ObITableReadInfo *read_info = access_param_->iter_param_.get_read_info();
|
||||
if (OB_ISNULL(read_info)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
STORAGE_LOG(WARN, "Unexpected null read_info", K(ret));
|
||||
@ -228,7 +228,7 @@ int ObMultipleMerge::save_curr_rowkey()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
// TODO remove this after delete store_rowkey from memtable
|
||||
const ObColDescIArray *col_descs = nullptr;
|
||||
const ObColDescIArray *rowkey_col_descs = nullptr;
|
||||
|
||||
if (OB_UNLIKELY(!inited_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
@ -244,10 +244,10 @@ int ObMultipleMerge::save_curr_rowkey()
|
||||
STORAGE_LOG(WARN, "Failed to assign tmp rowkey", K(ret), K_(unprojected_row));
|
||||
} else if (OB_FAIL(tmp_rowkey.deep_copy(curr_rowkey_, *access_ctx_->allocator_))) {
|
||||
STORAGE_LOG(WARN, "fail to deep copy rowkey", K(ret));
|
||||
} else if (OB_ISNULL(col_descs = access_param_->iter_param_.get_out_col_descs())) {
|
||||
} else if (OB_ISNULL(rowkey_col_descs = access_param_->iter_param_.get_out_col_descs())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
TRANS_LOG(WARN, "Unexpected null out cols", K(ret));
|
||||
} else if (OB_FAIL(curr_rowkey_.prepare_memtable_readable(*col_descs, *access_ctx_->allocator_))) {
|
||||
} else if (OB_FAIL(curr_rowkey_.prepare_memtable_readable(*rowkey_col_descs, *access_ctx_->allocator_))) {
|
||||
STORAGE_LOG(WARN, "Fail to transfer store rowkey", K(ret), K(curr_rowkey_));
|
||||
} else {
|
||||
curr_scan_index_ = unprojected_row_.scan_index_;
|
||||
@ -1114,35 +1114,31 @@ int ObMultipleMerge::prepare_read_tables(bool refresh)
|
||||
0 != access_ctx_->trans_version_range_.base_version_)) {
|
||||
ret = OB_ERR_SYS;
|
||||
LOG_WARN("base version should be 0", K(ret), K(access_ctx_->trans_version_range_.base_version_));
|
||||
} else if (!refresh && get_table_param_.tablet_iter_.table_iter_.is_valid()) {
|
||||
if (OB_FAIL(prepare_tables_from_iterator(get_table_param_.tablet_iter_.table_iter_))) {
|
||||
LOG_WARN("prepare tables fail", K(ret), K(get_table_param_.tablet_iter_.table_iter_));
|
||||
} else if (!refresh && get_table_param_.tablet_iter_.table_iter()->is_valid()) {
|
||||
if (OB_FAIL(prepare_tables_from_iterator(*get_table_param_.tablet_iter_.table_iter()))) {
|
||||
LOG_WARN("prepare tables fail", K(ret), K(get_table_param_.tablet_iter_.table_iter()));
|
||||
}
|
||||
} else if (OB_FAIL(FALSE_IT(get_table_param_.tablet_iter_.table_iter_.reset()))) {
|
||||
} else if (OB_FAIL(FALSE_IT(get_table_param_.tablet_iter_.table_iter()->reset()))) {
|
||||
} else {
|
||||
ObTabletHandle &tablet_handle = get_table_param_.tablet_iter_.tablet_handle_;
|
||||
if (OB_UNLIKELY(!tablet_handle.is_valid())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid tablet handle", K(ret), K_(get_table_param), KP_(access_param));
|
||||
} else if (OB_UNLIKELY(get_table_param_.frozen_version_ != -1)) {
|
||||
if (OB_UNLIKELY(get_table_param_.frozen_version_ != -1)) {
|
||||
if (!get_table_param_.sample_info_.is_no_sample()) {
|
||||
ret = OB_NOT_SUPPORTED;
|
||||
LOG_WARN("sample query does not support frozen_version", K(ret), K_(get_table_param), KP_(access_param));
|
||||
} else if (OB_FAIL(tablet_handle.get_obj()->get_read_major_sstable(get_table_param_.frozen_version_, get_table_param_.tablet_iter_))) {
|
||||
} else if (OB_FAIL(get_table_param_.tablet_iter_.refresh_read_tables_from_tablet(
|
||||
get_table_param_.frozen_version_, false/*allow_not_ready*/, true/*major only*/))) {
|
||||
LOG_WARN("get table iterator fail", K(ret), K_(get_table_param), KP_(access_param));
|
||||
}
|
||||
} else if (OB_FAIL(tablet_handle.get_obj()->get_read_tables(
|
||||
} else if (OB_FAIL(get_table_param_.tablet_iter_.refresh_read_tables_from_tablet(
|
||||
get_table_param_.sample_info_.is_no_sample()
|
||||
? access_ctx_->store_ctx_->mvcc_acc_ctx_.get_snapshot_version().get_val_for_tx()
|
||||
: INT64_MAX,
|
||||
get_table_param_.tablet_iter_,
|
||||
false/*allow_not_ready*/))) {
|
||||
LOG_WARN("get table iterator fail", K(ret), K_(get_table_param), KP_(access_param));
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(prepare_tables_from_iterator(get_table_param_.tablet_iter_.table_iter_, &get_table_param_.sample_info_))) {
|
||||
LOG_WARN("failed to prepare tables from iter", K(ret), K(get_table_param_.tablet_iter_.table_iter_));
|
||||
if (OB_FAIL(prepare_tables_from_iterator(*get_table_param_.tablet_iter_.table_iter(), &get_table_param_.sample_info_))) {
|
||||
LOG_WARN("failed to prepare tables from iter", K(ret), K(get_table_param_.tablet_iter_.table_iter()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1252,12 +1248,11 @@ int ObMultipleMerge::refresh_tablet_iter()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObLSHandle ls_handle;
|
||||
ObTabletHandle &tablet_handle = get_table_param_.tablet_iter_.tablet_handle_;
|
||||
if (OB_UNLIKELY(!tablet_handle.is_valid())) {
|
||||
if (OB_UNLIKELY(!get_table_param_.tablet_iter_.is_valid())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("tablet handle is invalid", K(ret), K(get_table_param_.tablet_iter_.tablet_handle_));
|
||||
LOG_WARN("tablet iter is invalid", K(ret), K(get_table_param_.tablet_iter_));
|
||||
} else {
|
||||
const common::ObTabletID tablet_id = tablet_handle.get_obj()->get_tablet_meta().tablet_id_;
|
||||
const common::ObTabletID tablet_id = get_table_param_.tablet_iter_.get_tablet()->get_tablet_meta().tablet_id_;
|
||||
if (OB_FAIL(MTL(ObLSService*)->get_ls(access_ctx_->ls_id_, ls_handle, ObLSGetMod::STORAGE_MOD))) {
|
||||
LOG_WARN("failed to get ls", K(ret));
|
||||
} else if (OB_ISNULL(ls_handle.get_ls())) {
|
||||
|
||||
Reference in New Issue
Block a user