Migration fetch logic macro block id array rpc placeholder

This commit is contained in:
JunkoPF 2024-12-24 07:15:44 +00:00 committed by ob-robot
parent ceebb92d04
commit d9efc9d9df
5 changed files with 25 additions and 22 deletions

View File

@ -513,6 +513,9 @@ PCODE_DEF(OB_ROOT_REBUILD_TABLET, 0x4C5)
PCODE_DEF(OB_HA_REBUILD_TABLET, 0x4C6)
PCODE_DEF(OB_HA_REBUILD_TABLET_SSTABLE_INFO, 0x4C7)
// fetch macro block logic id array
// PCODE_DEF(OB_HA_FETCH_SSTABLE_LOGIC_MACRO_INFO, 0x4C8)
// sql, including executor
// sql

View File

@ -39,7 +39,7 @@ ERRSIM_POINT_DEF(EN_ONLY_COPY_OLD_VERSION_MAJOR_SSTABLE);
/******************CopyMacroBlockReadInfo*********************/
ObICopyMacroBlockReader::CopyMacroBlockReadData::CopyMacroBlockReadData()
: data_type_(ObCopyMacroBlockHeader::DataType::MAX),
: data_type_(ObCopyMacroBlockDataType::MAX),
is_reuse_macro_block_(false),
macro_data_(),
macro_meta_(nullptr),
@ -55,7 +55,7 @@ ObICopyMacroBlockReader::CopyMacroBlockReadData::~CopyMacroBlockReadData()
void ObICopyMacroBlockReader::CopyMacroBlockReadData::reset()
{
data_type_ = ObCopyMacroBlockHeader::DataType::MAX;
data_type_ = ObCopyMacroBlockDataType::MAX;
is_reuse_macro_block_ = false;
macro_data_ = ObBufferReader(NULL, 0, 0);
macro_meta_ = nullptr;
@ -67,9 +67,9 @@ bool ObICopyMacroBlockReader::CopyMacroBlockReadData::is_valid() const
{
bool valid = false;
if (ObCopyMacroBlockHeader::DataType::MACRO_META_ROW == data_type_) {
if (ObCopyMacroBlockDataType::MACRO_META_ROW == data_type_) {
valid = is_reuse_macro_block_ && OB_NOT_NULL(macro_meta_) && macro_meta_->is_valid();
} else if (ObCopyMacroBlockHeader::DataType::MACRO_DATA == data_type_) {
} else if (ObCopyMacroBlockDataType::MACRO_DATA == data_type_) {
valid = !is_reuse_macro_block_ && macro_data_.is_valid();
}
@ -88,7 +88,7 @@ int ObICopyMacroBlockReader::CopyMacroBlockReadData::set_macro_meta(
} else if (OB_FAIL(macro_meta.deep_copy(macro_meta_, allocator_))) {
LOG_WARN("failed to deep copy macro meta", K(ret), K(macro_meta));
} else {
data_type_ = ObCopyMacroBlockHeader::DataType::MACRO_META_ROW;
data_type_ = ObCopyMacroBlockDataType::MACRO_META_ROW;
is_reuse_macro_block_ = is_reuse_macro_block;
}
@ -106,7 +106,7 @@ int ObICopyMacroBlockReader::CopyMacroBlockReadData::set_macro_data(
LOG_WARN("set macro data get invalid argument", K(ret), K(data), K(is_reuse_macro_block));
} else {
macro_data_ = data;
data_type_ = ObCopyMacroBlockHeader::DataType::MACRO_DATA;
data_type_ = ObCopyMacroBlockDataType::MACRO_DATA;
is_reuse_macro_block_ = is_reuse_macro_block;
}
@ -434,11 +434,11 @@ int ObCopyMacroBlockObReader::get_read_info_(const ObCopyMacroBlockHeader &heade
int ret = OB_SUCCESS;
read_data.reset();
if (header.data_type_ == ObCopyMacroBlockHeader::DataType::MACRO_DATA) {
if (header.data_type_ == ObCopyMacroBlockDataType::MACRO_DATA) {
if (OB_FAIL(read_data.set_macro_data(data, header.is_reuse_macro_block_))) {
LOG_WARN("failed to set macro data", K(ret), K(data), K(header));
}
} else if (header.data_type_ == ObCopyMacroBlockHeader::DataType::MACRO_META_ROW) {
} else if (header.data_type_ == ObCopyMacroBlockDataType::MACRO_META_ROW) {
ObDatumRow macro_meta_row;
ObDataMacroBlockMeta macro_meta;
MacroBlockId macro_id;
@ -1196,7 +1196,7 @@ int ObCopyMacroBlockObProducer::get_next_macro_block(
data.assign(meta_row_buf_.data(), occupy_size);
copy_macro_block_header.occupy_size_ = occupy_size;
copy_macro_block_header.is_reuse_macro_block_ = true;
copy_macro_block_header.data_type_ = ObCopyMacroBlockHeader::DataType::MACRO_META_ROW;
copy_macro_block_header.data_type_ = ObCopyMacroBlockDataType::MACRO_META_ROW;
}
} else {
blocksstable::ObMacroBlockCommonHeader common_header;
@ -1215,7 +1215,7 @@ int ObCopyMacroBlockObProducer::get_next_macro_block(
data.assign(copy_macro_block_handle_[handle_idx_].read_handle_.get_buffer(), occupy_size);
copy_macro_block_header.is_reuse_macro_block_ = false;
copy_macro_block_header.occupy_size_ = occupy_size;
copy_macro_block_header.data_type_ = ObCopyMacroBlockHeader::DataType::MACRO_DATA;
copy_macro_block_header.data_type_ = ObCopyMacroBlockDataType::MACRO_DATA;
}
}
}

View File

@ -53,11 +53,11 @@ public:
int set_macro_data(const blocksstable::ObBufferReader& macro_data, const bool &is_reuse_macro_block);
void set_macro_block_id(const blocksstable::MacroBlockId &macro_block_id);
bool is_reuse_macro_block() const { return is_reuse_macro_block_; }
bool is_macro_data() const { return data_type_ == ObCopyMacroBlockHeader::DataType::MACRO_DATA; }
bool is_macro_meta() const { return data_type_ == ObCopyMacroBlockHeader::DataType::MACRO_META_ROW; }
bool is_macro_data() const { return data_type_ == ObCopyMacroBlockDataType::MACRO_DATA; }
bool is_macro_meta() const { return data_type_ == ObCopyMacroBlockDataType::MACRO_META_ROW; }
public:
TO_STRING_KV(K_(data_type), K_(is_reuse_macro_block), K_(macro_data), KPC_(macro_meta));
ObCopyMacroBlockHeader::DataType data_type_;
ObCopyMacroBlockDataType data_type_;
bool is_reuse_macro_block_;
blocksstable::ObBufferReader macro_data_;
blocksstable::ObDataMacroBlockMeta *macro_meta_;

View File

@ -202,7 +202,7 @@ OB_SERIALIZE_MEMBER(ObCopyMacroBlockRangeArg, tenant_id_, ls_id_, table_key_, da
ObCopyMacroBlockHeader::ObCopyMacroBlockHeader()
: is_reuse_macro_block_(false),
occupy_size_(0),
data_type_(DataType::MACRO_DATA) // default value for compat, previous version won't contain data_type_ and will pass macro data all the time
data_type_(ObCopyMacroBlockDataType::MACRO_DATA) // default value for compat, previous version won't contain data_type_ and will pass macro data all the time
{
}
@ -214,7 +214,7 @@ void ObCopyMacroBlockHeader::reset()
bool ObCopyMacroBlockHeader::is_valid() const
{
return occupy_size_ > 0 && data_type_ >= DataType::MACRO_DATA && data_type_ < DataType::MAX;
return occupy_size_ > 0 && data_type_ >= ObCopyMacroBlockDataType::MACRO_DATA && data_type_ < ObCopyMacroBlockDataType::MAX;
}
OB_SERIALIZE_MEMBER(ObCopyMacroBlockHeader, is_reuse_macro_block_, occupy_size_, data_type_);

View File

@ -82,6 +82,12 @@ public:
common::ObSArray<ObCopyMacroBlockArg> arg_list_;
};
enum ObCopyMacroBlockDataType {
MACRO_DATA = 0,
MACRO_META_ROW = 1,
MAX
};
struct ObCopyMacroBlockRangeArg final
{
OB_UNIS_VERSION(2);
@ -109,12 +115,6 @@ struct ObCopyMacroBlockHeader
{
OB_UNIS_VERSION(2);
public:
enum DataType
{
MACRO_DATA = 0,
MACRO_META_ROW = 1,
MAX,
};
ObCopyMacroBlockHeader();
virtual ~ObCopyMacroBlockHeader() {}
void reset();
@ -123,7 +123,7 @@ public:
TO_STRING_KV(K_(is_reuse_macro_block), K_(occupy_size), K_(data_type));
bool is_reuse_macro_block_;
int64_t occupy_size_;
DataType data_type_;
ObCopyMacroBlockDataType data_type_; // FARM COMPAT WHITELIST FOR data_type_: renamed
};
struct ObCopyTabletInfoArg