[TD-114] add balance interface, so it can create database with replica 2 option
This commit is contained in:
parent
445cdc2d8b
commit
8c4747e81d
|
@ -26,6 +26,10 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
|||
TARGET_LINK_LIBRARIES(taosd cluster)
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_VPEER)
|
||||
TARGET_LINK_LIBRARIES(taosd balance)
|
||||
ENDIF ()
|
||||
|
||||
SET(PREPARE_ENV_CMD "prepare_env_cmd")
|
||||
SET(PREPARE_ENV_TARGET "prepare_env_target")
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${PREPARE_ENV_CMD}
|
||||
|
|
|
@ -23,7 +23,7 @@ extern "C" {
|
|||
|
||||
int32_t mgmtInitBalance();
|
||||
void mgmtCleanupBalance();
|
||||
void mgmtStartBalanceTimer(int32_t afterMs) ;
|
||||
void mgmtBalanceNotify() ;
|
||||
int32_t mgmtAllocVnodes(SVgObj *pVgroup);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -18,11 +18,37 @@
|
|||
#include "mgmtBalance.h"
|
||||
#include "mgmtDnode.h"
|
||||
|
||||
int32_t mgmtInitBalance() { return 0; }
|
||||
void mgmtCleanupBalance() {}
|
||||
void mgmtStartBalanceTimer(int32_t afterMs) {}
|
||||
extern int32_t balanceInit();
|
||||
extern void balanceCleanUp();
|
||||
extern void balanceNotify();
|
||||
extern int32_t balanceAllocVnodes(SVgObj *pVgroup);
|
||||
|
||||
int32_t mgmtInitBalance() {
|
||||
#ifdef _VPEER
|
||||
return balanceInit();
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void mgmtCleanupBalance() {
|
||||
#ifdef _VPEER
|
||||
balanceCleanUp();
|
||||
#endif
|
||||
}
|
||||
|
||||
void mgmtBalanceNotify() {
|
||||
#ifdef _VPEER
|
||||
balanceNotify();
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int32_t mgmtAllocVnodes(SVgObj *pVgroup) {
|
||||
#ifdef _VPEER
|
||||
return balanceAllocVnodes(pVgroup);
|
||||
#else
|
||||
void * pNode = NULL;
|
||||
SDnodeObj *pDnode = NULL;
|
||||
SDnodeObj *pSelDnode = NULL;
|
||||
|
@ -53,4 +79,5 @@ int32_t mgmtAllocVnodes(SVgObj *pVgroup) {
|
|||
|
||||
mTrace("dnode:%d, alloc one vnode to vgroup, openVnodes:%d", pSelDnode->dnodeId, pSelDnode->openVnodes);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -251,7 +251,7 @@ void mgmtProcessDnodeStatusMsg(SRpcMsg *rpcMsg) {
|
|||
if (pDnode->status != TSDB_DN_STATUS_READY) {
|
||||
mTrace("dnode:%d, from offline to online", pDnode->dnodeId);
|
||||
pDnode->status = TSDB_DN_STATUS_READY;
|
||||
mgmtStartBalanceTimer(200);
|
||||
mgmtBalanceNotify();
|
||||
}
|
||||
|
||||
mgmtDecDnodeRef(pDnode);
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "mgmtVgroup.h"
|
||||
|
||||
void *tsVgroupSdb = NULL;
|
||||
static int32_t tsVgUpdateSize = 0;
|
||||
int32_t tsVgUpdateSize = 0;
|
||||
|
||||
static int32_t mgmtGetVgroupMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn);
|
||||
static int32_t mgmtRetrieveVgroups(SShowObj *pShow, char *data, int32_t rows, void *pConn);
|
||||
|
@ -93,10 +93,12 @@ static int32_t mgmtVgroupActionInsert(SSdbOperDesc *pOper) {
|
|||
|
||||
for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) {
|
||||
SDnodeObj *pDnode = mgmtGetDnode(pVgroup->vnodeGid[i].dnodeId);
|
||||
pVgroup->vnodeGid[i].privateIp = pDnode->privateIp;
|
||||
pVgroup->vnodeGid[i].publicIp = pDnode->publicIp;
|
||||
atomic_add_fetch_32(&pDnode->openVnodes, 1);
|
||||
mgmtDecDnodeRef(pDnode);
|
||||
if (pDnode != NULL) {
|
||||
pVgroup->vnodeGid[i].privateIp = pDnode->privateIp;
|
||||
pVgroup->vnodeGid[i].publicIp = pDnode->publicIp;
|
||||
atomic_add_fetch_32(&pDnode->openVnodes, 1);
|
||||
mgmtDecDnodeRef(pDnode);
|
||||
}
|
||||
}
|
||||
|
||||
mgmtAddVgroupIntoDb(pVgroup);
|
||||
|
|
Loading…
Reference in New Issue