patch 4.0

This commit is contained in:
wangzelin.wzl
2022-10-24 10:34:53 +08:00
parent 4ad6e00ec3
commit 93a1074b0c
10533 changed files with 2588271 additions and 2299373 deletions

View File

@ -17,38 +17,33 @@
#include "rootserver/ob_server_manager.h"
#include "lib/container/ob_array_iterator.h"
namespace oceanbase {
namespace rootserver {
class ObServerStatusBuilder {
namespace oceanbase
{
namespace rootserver
{
class ObServerStatusBuilder
{
public:
ObServerStatusBuilder() : config_(NULL), server_statuses_(), server_id_(OB_INIT_SERVER_ID)
{}
int init(ObServerConfig& config)
{
config_ = &config;
return OB_SUCCESS;
}
ObServerStatusBuilder() : config_(NULL), server_statuses_(), server_id_(OB_INIT_SERVER_ID) {}
int init(ObServerConfig &config) { config_ = &config; return OB_SUCCESS; }
void set_resource_info(const double cpu, const int64_t mem, const int64_t disk);
ObServerStatusBuilder& add(
share::ObServerStatus::DisplayStatus status, const int64_t now, const ObAddr& server, const ObZone& zone);
ObServerManager::ObServerStatusArray& get_server_statuses()
{
return server_statuses_;
}
void reset()
{
server_statuses_.reset();
}
int build(ObServerManager& server_mgr);
ObServerStatusBuilder &add(share::ObServerStatus::DisplayStatus status,
const int64_t now,
const ObAddr &server,
const ObZone &zone);
ObServerManager::ObServerStatusArray &get_server_statuses() { return server_statuses_; }
void reset() { server_statuses_.reset(); }
int build(ObServerManager &server_mgr);
private:
ObServerConfig* config_;
ObServerConfig *config_;
share::ObServerResourceInfo resource_;
ObServerManager::ObServerStatusArray server_statuses_;
uint64_t server_id_;
};
void ObServerStatusBuilder::set_resource_info(const double cpu, const int64_t mem, const int64_t disk)
void ObServerStatusBuilder::set_resource_info(const double cpu,
const int64_t mem,
const int64_t disk)
{
resource_.cpu_ = cpu;
resource_.mem_in_use_ = 0;
@ -57,8 +52,10 @@ void ObServerStatusBuilder::set_resource_info(const double cpu, const int64_t me
resource_.disk_total_ = disk;
}
ObServerStatusBuilder& ObServerStatusBuilder::add(
share::ObServerStatus::DisplayStatus status, const int64_t now, const ObAddr& server, const ObZone& zone)
ObServerStatusBuilder &ObServerStatusBuilder::add(share::ObServerStatus::DisplayStatus status,
const int64_t now,
const ObAddr &server,
const ObZone &zone)
{
share::ObServerStatus server_status;
if (share::ObServerStatus::OB_SERVER_INACTIVE == status) {
@ -75,7 +72,8 @@ ObServerStatusBuilder& ObServerStatusBuilder::add(
server_status.admin_status_ = share::ObServerStatus::OB_SERVER_ADMIN_DELETING;
server_status.hb_status_ = share::ObServerStatus::OB_HEARTBEAT_LEASE_EXPIRED;
}
OB_ASSERT(strlen("dev1.0") == snprintf(server_status.build_version_, OB_SERVER_VERSION_LENGTH, "%s", "dev1.0"));
OB_ASSERT(strlen("dev1.0") == snprintf(server_status.build_version_, OB_SERVER_VERSION_LENGTH,
"%s", "dev1.0"));
server_status.zone_ = zone;
server_status.server_ = server;
server_status.resource_info_ = resource_;
@ -86,13 +84,12 @@ ObServerStatusBuilder& ObServerStatusBuilder::add(
return *this;
}
inline int ObServerStatusBuilder::build(ObServerManager& server_mgr)
inline int ObServerStatusBuilder::build(ObServerManager &server_mgr)
{
int ret = server_mgr.load_server_statuses(server_statuses_);
// build_server_status will change alive status to lease expired
if (OB_SUCC(ret)) {
FOREACH_X(s, server_statuses_, OB_SUCCESS == ret)
{
FOREACH_X(s, server_statuses_, OB_SUCCESS == ret) {
if (!s->is_alive()) {
continue;
}
@ -100,12 +97,13 @@ inline int ObServerStatusBuilder::build(ObServerManager& server_mgr)
if (OB_FAIL(server_mgr.get_server_status(s->server_, ss))) {
} else {
ss.hb_status_ = share::ObServerStatus::OB_HEARTBEAT_ALIVE;
if (OB_FAIL(server_mgr.update_server_status(ss))) {}
if (OB_FAIL(server_mgr.update_server_status(ss))) {
}
}
}
}
return ret;
}
} // end namespace rootserver
} // end namespace oceanbase
}//end namespace rootserver
}//end namespace oceanbase