revert 'Reset PX DataHub whole msg in rescan scenario'

This commit is contained in:
obdev
2023-03-17 03:11:04 +00:00
committed by ob-robot
parent 843888c953
commit 1abd119e08
3 changed files with 4 additions and 24 deletions

View File

@ -298,8 +298,6 @@ int ObRDWFPieceMsgCtx::send_whole_msg(common::ObIArray<ObPxSqcMeta *> &sqcs)
void ObRDWFPieceMsgCtx::reset_resource() void ObRDWFPieceMsgCtx::reset_resource()
{ {
received_ = 0; received_ = 0;
infos_.reset();
arena_alloc_.reset();
} }
int ObRDWFWholeMsg::assign(const ObRDWFWholeMsg &msg) int ObRDWFWholeMsg::assign(const ObRDWFWholeMsg &msg)

View File

@ -25,26 +25,20 @@ namespace sql
class ObPxDatahubDataProvider class ObPxDatahubDataProvider
{ {
public: public:
ObPxDatahubDataProvider()
: op_id_(-1), msg_type_(dtl::TESTING), send_msg_cnt_(0), msg_set_(false)
{
}
virtual int get_msg_nonblock(const dtl::ObDtlMsg *&msg, int64_t timeout_ts) = 0; virtual int get_msg_nonblock(const dtl::ObDtlMsg *&msg, int64_t timeout_ts) = 0;
virtual void reset() { msg_set_ = false; } virtual void reset() {}
TO_STRING_KV(K_(op_id), K_(msg_type)); TO_STRING_KV(K_(op_id), K_(msg_type));
uint64_t op_id_; // 注册本 provider 的算子 id,用于 provder 数组里寻址对应 provider uint64_t op_id_; // 注册本 provider 的算子 id,用于 provder 数组里寻址对应 provider
dtl::ObDtlMsgType msg_type_; dtl::ObDtlMsgType msg_type_;
volatile int64_t send_msg_cnt_;
bool msg_set_;
}; };
template <typename T> template <typename T>
class ObWholeMsgProvider : public ObPxDatahubDataProvider class ObWholeMsgProvider : public ObPxDatahubDataProvider
{ {
public: public:
ObWholeMsgProvider() {} ObWholeMsgProvider() : msg_set_(false) {}
virtual ~ObWholeMsgProvider() = default; virtual ~ObWholeMsgProvider() = default;
virtual void reset() override { msg_.reset(); ObPxDatahubDataProvider::reset(); } virtual void reset() override { msg_.reset(); msg_set_ = false; }
int get_msg_nonblock(const dtl::ObDtlMsg *&msg, int64_t timeout_ts) int get_msg_nonblock(const dtl::ObDtlMsg *&msg, int64_t timeout_ts)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -89,6 +83,7 @@ private:
return ret; return ret;
} }
private: private:
bool msg_set_;
T msg_; T msg_;
common::ObThreadCond msg_ready_cond_; common::ObThreadCond msg_ready_cond_;
}; };

View File

@ -225,19 +225,6 @@ int ObPxSQCProxy::get_dh_msg(
SQL_LOG(WARN, "fail push data to channel", K(ret)); SQL_LOG(WARN, "fail push data to channel", K(ret));
} else if (OB_FAIL(ch->flush())) { } else if (OB_FAIL(ch->flush())) {
SQL_LOG(WARN, "fail flush dtl data", K(ret)); SQL_LOG(WARN, "fail flush dtl data", K(ret));
} else {
// The whole message should be reset in next rescan, we reset it after last piece msg
// send in sending piece msg and receiving whole msg scenario (need send && wait whole msg).
if (need_wait_whole_msg) {
const int64_t task_cnt = get_task_count();
if (provider->send_msg_cnt_ % task_cnt == 0) {
provider->msg_set_ = false;
}
provider->send_msg_cnt_ += 1;
if (provider->send_msg_cnt_ % task_cnt == 0) {
provider->reset(); // reset whole message
}
}
} }
} }