[CP] fix double destroy && force dump dag status in destroy
This commit is contained in:
parent
055b14bc3a
commit
a4cf5ecbd2
@ -1704,7 +1704,7 @@ void ObTenantDagScheduler::reset()
|
|||||||
WEAK_BARRIER();
|
WEAK_BARRIER();
|
||||||
int tmp_ret = OB_SUCCESS;
|
int tmp_ret = OB_SUCCESS;
|
||||||
int64_t abort_dag_cnt = 0;
|
int64_t abort_dag_cnt = 0;
|
||||||
dump_dag_status();
|
dump_dag_status(true);
|
||||||
for (int64_t j = 0; j < DAG_LIST_MAX; ++j) {
|
for (int64_t j = 0; j < DAG_LIST_MAX; ++j) {
|
||||||
for (int64_t i = 0; i < PriorityDagList::PRIO_CNT; ++i) {
|
for (int64_t i = 0; i < PriorityDagList::PRIO_CNT; ++i) {
|
||||||
ObIDag *head = dag_list_[j].get_head(i);
|
ObIDag *head = dag_list_[j].get_head(i);
|
||||||
@ -1947,9 +1947,9 @@ int ObTenantDagScheduler::add_dag(
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObTenantDagScheduler::dump_dag_status()
|
void ObTenantDagScheduler::dump_dag_status(const bool force_dump/*false*/)
|
||||||
{
|
{
|
||||||
if (REACH_TENANT_TIME_INTERVAL(DUMP_DAG_STATUS_INTERVAL)) {
|
if (force_dump || REACH_TENANT_TIME_INTERVAL(DUMP_DAG_STATUS_INTERVAL)) {
|
||||||
int64_t scheduled_task_cnt = 0;
|
int64_t scheduled_task_cnt = 0;
|
||||||
int64_t running_task[ObDagPrio::DAG_PRIO_MAX];
|
int64_t running_task[ObDagPrio::DAG_PRIO_MAX];
|
||||||
int64_t low_limits[ObDagPrio::DAG_PRIO_MAX];
|
int64_t low_limits[ObDagPrio::DAG_PRIO_MAX];
|
||||||
|
@ -898,7 +898,7 @@ private:
|
|||||||
bool try_switch(ObTenantDagWorker &worker);
|
bool try_switch(ObTenantDagWorker &worker);
|
||||||
int try_switch(ObTenantDagWorker &worker, const int64_t src_prio, const int64_t dest_prio, bool &need_pause);
|
int try_switch(ObTenantDagWorker &worker, const int64_t src_prio, const int64_t dest_prio, bool &need_pause);
|
||||||
void pause_worker(ObTenantDagWorker &worker, const int64_t priority);
|
void pause_worker(ObTenantDagWorker &worker, const int64_t priority);
|
||||||
void dump_dag_status();
|
void dump_dag_status(const bool force_dump = false);
|
||||||
int check_need_load_shedding(const int64_t priority, const bool for_schedule, bool &need_shedding);
|
int check_need_load_shedding(const int64_t priority, const bool for_schedule, bool &need_shedding);
|
||||||
void update_work_thread_num();
|
void update_work_thread_num();
|
||||||
int move_dag_to_list_(
|
int move_dag_to_list_(
|
||||||
|
@ -227,6 +227,12 @@ ObTenantTabletScheduler::~ObTenantTabletScheduler()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ObTenantTabletScheduler::destroy()
|
void ObTenantTabletScheduler::destroy()
|
||||||
|
{
|
||||||
|
if (IS_INIT) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void ObTenantTabletScheduler::reset()
|
||||||
{
|
{
|
||||||
stop();
|
stop();
|
||||||
wait();
|
wait();
|
||||||
@ -290,7 +296,9 @@ int ObTenantTabletScheduler::init()
|
|||||||
schedule_tablet_batch_size_ = schedule_batch_size;
|
schedule_tablet_batch_size_ = schedule_batch_size;
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
}
|
}
|
||||||
|
if (!is_inited_) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,6 +204,7 @@ public:
|
|||||||
int init();
|
int init();
|
||||||
int start();
|
int start();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
void reset();
|
||||||
void stop();
|
void stop();
|
||||||
void wait();
|
void wait();
|
||||||
bool is_stop() const { return is_stop_; }
|
bool is_stop() const { return is_stop_; }
|
||||||
|
@ -533,6 +533,9 @@ int ObTenantTabletStatMgr::init(const int64_t tenant_id)
|
|||||||
} else {
|
} else {
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
}
|
}
|
||||||
|
if (!is_inited_) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,6 +561,13 @@ void ObTenantTabletStatMgr::stop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ObTenantTabletStatMgr::destroy()
|
void ObTenantTabletStatMgr::destroy()
|
||||||
|
{
|
||||||
|
if (IS_INIT) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObTenantTabletStatMgr::reset()
|
||||||
{
|
{
|
||||||
stop();
|
stop();
|
||||||
wait();
|
wait();
|
||||||
|
@ -319,6 +319,7 @@ public:
|
|||||||
void wait();
|
void wait();
|
||||||
void stop();
|
void stop();
|
||||||
void destroy();
|
void destroy();
|
||||||
|
void reset();
|
||||||
|
|
||||||
int report_stat(
|
int report_stat(
|
||||||
const ObTabletStat &stat,
|
const ObTabletStat &stat,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user