Files
openGauss-server/src/include/workload/cpwlm.h
2021-03-06 12:39:28 +08:00

78 lines
2.0 KiB
C

/*
* Copyright (c) 2020 Huawei Technologies Co.,Ltd.
*
* openGauss is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* ---------------------------------------------------------------------------------------
*
* cpwlm.h
*
*
* IDENTIFICATION
* src/include/workload/cpwlm.h
*
* ---------------------------------------------------------------------------------------
*/
#ifndef CPWLM_H
#define CPWLM_H
#include "lib/stringinfo.h"
#include "pgxc/pgxcnode.h"
/* core data in CCN of the compute pool */
typedef struct DNState {
bool is_normal;
int num_rp;
} DNState;
/* core data in CCN of the compute pool */
typedef struct {
DNState* dn_state;
int dn_num;
} ComputePoolState;
/* from the CN of the compute pool */
typedef struct {
int dnnum;
int freerp;
char* version;
} CPRuntimeInfo;
/* from the conf file in CN data directory of DWS. */
typedef struct {
char* cpip;
char* cpport;
char* username;
char* password;
char* version;
int dnnum;
int pl;
int rpthreshold;
} ComputePoolConfig;
extern List* get_dnlist(int neededDNnum);
extern ComputePoolState* get_cluster_state();
extern void process_request(StringInfo input_message);
extern void get_cp_runtime_info(PGXCNodeHandle* handle);
extern char* get_version();
extern ComputePoolConfig** get_cp_conninfo(int* cnum = NULL);
extern char* trim(char* src);
extern bool check_version_compatibility(const char* remote_version);
/* just run on DN */
extern void decrease_rp_number();
extern void increase_rp_number();
#endif // CPWLM_H