[GC] GC should only care committed ls
This commit is contained in:
@ -1296,7 +1296,9 @@ int ObGarbageCollector::construct_server_ls_map_for_member_list_(ServerLSMap &se
|
|||||||
}
|
}
|
||||||
} else if (OB_ISNULL(ls)) {
|
} else if (OB_ISNULL(ls)) {
|
||||||
tmp_ret = OB_ERR_UNEXPECTED;
|
tmp_ret = OB_ERR_UNEXPECTED;
|
||||||
CLOG_LOG(ERROR, "log stream is NULL", K(tmp_ret), K(ls));
|
CLOG_LOG(ERROR, "log stream is NULL", K(tmp_ret), KP(ls));
|
||||||
|
} else if (OB_UNLIKELY(!ls->is_create_committed())) {
|
||||||
|
CLOG_LOG(INFO, "ls is not committed, just ignore", K(ls));
|
||||||
} else if (OB_SUCCESS != (tmp_ret = GCTX.location_service_->nonblock_get_leader(
|
} else if (OB_SUCCESS != (tmp_ret = GCTX.location_service_->nonblock_get_leader(
|
||||||
cluster_id, tenant_id, ls->get_ls_id(), leader))) {
|
cluster_id, tenant_id, ls->get_ls_id(), leader))) {
|
||||||
if (is_location_service_renew_error(tmp_ret)) {
|
if (is_location_service_renew_error(tmp_ret)) {
|
||||||
@ -1387,7 +1389,9 @@ void ObGarbageCollector::gc_check_ls_status_(ObGCCandidateArray &gc_candidates)
|
|||||||
CLOG_LOG(WARN, "get next log stream failed", K(ret));
|
CLOG_LOG(WARN, "get next log stream failed", K(ret));
|
||||||
}
|
}
|
||||||
} else if (OB_ISNULL(ls)) {
|
} else if (OB_ISNULL(ls)) {
|
||||||
CLOG_LOG(ERROR, "log stream is NULL", K(ls));
|
CLOG_LOG(ERROR, "log stream is NULL", KP(ls));
|
||||||
|
} else if (OB_UNLIKELY(!ls->is_create_committed())) {
|
||||||
|
CLOG_LOG(INFO, "ls is not committed, just ignore", K(ls));
|
||||||
} else if (OB_SUCCESS != (tmp_ret = gc_check_ls_status_(*ls, gc_candidates))) {
|
} else if (OB_SUCCESS != (tmp_ret = gc_check_ls_status_(*ls, gc_candidates))) {
|
||||||
CLOG_LOG(WARN, "get_ls_status_ failed", K(tmp_ret), K(ls->get_ls_id()));
|
CLOG_LOG(WARN, "get_ls_status_ failed", K(tmp_ret), K(ls->get_ls_id()));
|
||||||
} else {}
|
} else {}
|
||||||
|
|||||||
@ -463,6 +463,11 @@ ObInnerLSStatus ObLS::get_create_state() const
|
|||||||
return ls_meta_.get_ls_create_status();
|
return ls_meta_.get_ls_create_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ObLS::is_create_committed() const
|
||||||
|
{
|
||||||
|
return ObInnerLSStatus::COMMITTED == ls_meta_.get_ls_create_status();
|
||||||
|
}
|
||||||
|
|
||||||
bool ObLS::is_need_gc() const
|
bool ObLS::is_need_gc() const
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
|||||||
@ -240,6 +240,8 @@ public:
|
|||||||
// @param[in] new_status, the new create state which will be set.
|
// @param[in] new_status, the new create state which will be set.
|
||||||
void set_create_state(const ObInnerLSStatus new_status);
|
void set_create_state(const ObInnerLSStatus new_status);
|
||||||
ObInnerLSStatus get_create_state() const;
|
ObInnerLSStatus get_create_state() const;
|
||||||
|
|
||||||
|
bool is_create_committed() const;
|
||||||
bool is_need_gc() const;
|
bool is_need_gc() const;
|
||||||
bool is_in_gc();
|
bool is_in_gc();
|
||||||
bool is_enable_for_restore() const;
|
bool is_enable_for_restore() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user