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