From 47e1d6954d4f192193a7bfc1e73207a131f84f76 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 8 Dec 2021 14:30:28 +0800 Subject: [PATCH] TD-10431 dnode manage --- source/dnode/mnode/impl/src/mndDnode.c | 99 ++++++++++++++------------ source/dnode/mnode/impl/src/mndMnode.c | 83 +++++++++++---------- 2 files changed, 101 insertions(+), 81 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index d187294b87..d62e1464a6 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -36,6 +36,53 @@ static char *offlineReason[] = { "unknown", }; +static int32_t mndCreateDefaultDnode(SMnode *pMnode); +static SSdbRaw *mndDnodeActionEncode(SDnodeObj *pDnode); +static SSdbRow *mndDnodeActionDecode(SSdbRaw *pRaw); +static int32_t mndDnodeActionInsert(SSdb *pSdb, SDnodeObj *pDnode); +static int32_t mndDnodeActionDelete(SSdb *pSdb, SDnodeObj *pDnode); +static int32_t mndDnodeActionUpdate(SSdb *pSdb, SDnodeObj *pOldDnode, SDnodeObj *pNewDnode); +static int32_t mndProcessCreateDnodeMsg(SMnodeMsg *pMsg); +static int32_t mndProcessDropDnodeMsg(SMnodeMsg *pMsg); +static int32_t mndProcessConfigDnodeMsg(SMnodeMsg *pMsg); +static int32_t mndProcessStatusMsg(SMnodeMsg *pMsg); + +int32_t mndInitDnode(SMnode *pMnode) { + SSdbTable table = {.sdbType = SDB_DNODE, + .keyType = SDB_KEY_INT32, + .deployFp = (SdbDeployFp)mndCreateDefaultDnode, + .encodeFp = (SdbEncodeFp)mndDnodeActionEncode, + .decodeFp = (SdbDecodeFp)mndDnodeActionDecode, + .insertFp = (SdbInsertFp)mndDnodeActionInsert, + .updateFp = (SdbUpdateFp)mndDnodeActionUpdate, + .deleteFp = (SdbDeleteFp)mndDnodeActionDelete}; + + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CREATE_DNODE, mndProcessCreateDnodeMsg); + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_DROP_DNODE, mndProcessDropDnodeMsg); + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CONFIG_DNODE, mndProcessConfigDnodeMsg); + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_STATUS, mndProcessStatusMsg); + + return sdbSetTable(pMnode->pSdb, table); +} + +void mndCleanupDnode(SMnode *pMnode) {} + +static int32_t mndCreateDefaultDnode(SMnode *pMnode) { + SDnodeObj dnodeObj = {0}; + dnodeObj.id = 1; + dnodeObj.createdTime = taosGetTimestampMs(); + dnodeObj.updateTime = dnodeObj.createdTime; + dnodeObj.port = pMnode->replicas[0].port; + memcpy(&dnodeObj.fqdn, pMnode->replicas[0].fqdn, TSDB_FQDN_LEN); + + SSdbRaw *pRaw = mndDnodeActionEncode(&dnodeObj); + if (pRaw == NULL) return -1; + sdbSetRawStatus(pRaw, SDB_STATUS_READY); + + mDebug("dnode:%d, will be created while deploy sdb", dnodeObj.id); + return sdbWrite(pMnode->pSdb, pRaw); +} + static SSdbRaw *mndDnodeActionEncode(SDnodeObj *pDnode) { SSdbRaw *pRaw = sdbAllocRaw(SDB_DNODE, SDB_DNODE_VER, sizeof(SDnodeObj)); if (pRaw == NULL) return NULL; @@ -107,24 +154,18 @@ static int32_t mndDnodeActionUpdate(SSdb *pSdb, SDnodeObj *pOldDnode, SDnodeObj pOldDnode->createdTime = pNewDnode->createdTime; pOldDnode->updateTime = pNewDnode->updateTime; pOldDnode->port = pNewDnode->port; - memcpy(pOldDnode->fqdn, pNewDnode->fqdn, TSDB_FQDN_LEN); + memcpy(pOldDnode->fqdn, pNewDnode->fqdn, TSDB_FQDN_LEN); return 0; } -static int32_t mndCreateDefaultDnode(SMnode *pMnode) { - SDnodeObj dnodeObj = {0}; - dnodeObj.id = 1; - dnodeObj.createdTime = taosGetTimestampMs(); - dnodeObj.updateTime = dnodeObj.createdTime; - dnodeObj.port = pMnode->replicas[0].port; - memcpy(&dnodeObj.fqdn, pMnode->replicas[0].fqdn, TSDB_FQDN_LEN); +SDnodeObj *mndAcquireDnode(SMnode *pMnode, int32_t dnodeId) { + SSdb *pSdb = pMnode->pSdb; + return sdbAcquire(pSdb, SDB_DNODE, &dnodeId); +} - SSdbRaw *pRaw = mndDnodeActionEncode(&dnodeObj); - if (pRaw == NULL) return -1; - sdbSetRawStatus(pRaw, SDB_STATUS_READY); - - mDebug("dnode:%d, will be created while deploy sdb", dnodeObj.id); - return sdbWrite(pMnode->pSdb, pRaw); +void mndReleaseDnode(SMnode *pMnode, SDnodeObj *pDnode) { + SSdb *pSdb = pMnode->pSdb; + sdbRelease(pSdb, pDnode); } static SDnodeObj *mndAcquireDnodeByEp(SMnode *pMnode, char *pEpStr) { @@ -322,33 +363,3 @@ static int32_t mndProcessCreateDnodeMsg(SMnodeMsg *pMsg) { return 0; } static int32_t mndProcessDropDnodeMsg(SMnodeMsg *pMsg) { return 0; } static int32_t mndProcessConfigDnodeMsg(SMnodeMsg *pMsg) { return 0; } - -int32_t mndInitDnode(SMnode *pMnode) { - SSdbTable table = {.sdbType = SDB_DNODE, - .keyType = SDB_KEY_INT32, - .deployFp = (SdbDeployFp)mndCreateDefaultDnode, - .encodeFp = (SdbEncodeFp)mndDnodeActionEncode, - .decodeFp = (SdbDecodeFp)mndDnodeActionDecode, - .insertFp = (SdbInsertFp)mndDnodeActionInsert, - .updateFp = (SdbUpdateFp)mndDnodeActionUpdate, - .deleteFp = (SdbDeleteFp)mndDnodeActionDelete}; - - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CREATE_DNODE, mndProcessCreateDnodeMsg); - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_DROP_DNODE, mndProcessDropDnodeMsg); - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CONFIG_DNODE, mndProcessConfigDnodeMsg); - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_STATUS, mndProcessStatusMsg); - - return sdbSetTable(pMnode->pSdb, table); -} - -void mndCleanupDnode(SMnode *pMnode) {} - -SDnodeObj *mndAcquireDnode(SMnode *pMnode, int32_t dnodeId) { - SSdb *pSdb = pMnode->pSdb; - return sdbAcquire(pSdb, SDB_DNODE, &dnodeId); -} - -void mndReleaseDnode(SMnode *pMnode, SDnodeObj *pDnode) { - SSdb *pSdb = pMnode->pSdb; - sdbRelease(pSdb, pDnode); -} diff --git a/source/dnode/mnode/impl/src/mndMnode.c b/source/dnode/mnode/impl/src/mndMnode.c index 2490f1fcae..be66db3b01 100644 --- a/source/dnode/mnode/impl/src/mndMnode.c +++ b/source/dnode/mnode/impl/src/mndMnode.c @@ -18,6 +18,47 @@ #define SDB_MNODE_VER 1 +static int32_t mndCreateDefaultMnode(SMnode *pMnode); +static SSdbRaw *mndMnodeActionEncode(SMnodeObj *pMnodeObj); +static SSdbRow *mndMnodeActionDecode(SSdbRaw *pRaw); +static int32_t mndMnodeActionInsert(SSdb *pSdb, SMnodeObj *pMnodeObj); +static int32_t mndMnodeActionDelete(SSdb *pSdb, SMnodeObj *pMnodeObj); +static int32_t mndMnodeActionUpdate(SSdb *pSdb, SMnodeObj *pOldMnode, SMnodeObj *pNewMnode); +static int32_t mndProcessCreateMnodeMsg(SMnodeMsg *pMsg); +static int32_t mndProcessDropMnodeMsg(SMnodeMsg *pMsg); + +int32_t mndInitMnode(SMnode *pMnode) { + SSdbTable table = {.sdbType = SDB_MNODE, + .keyType = SDB_KEY_INT32, + .deployFp = (SdbDeployFp)mndCreateDefaultMnode, + .encodeFp = (SdbEncodeFp)mndMnodeActionEncode, + .decodeFp = (SdbDecodeFp)mndMnodeActionDecode, + .insertFp = (SdbInsertFp)mndMnodeActionInsert, + .updateFp = (SdbUpdateFp)mndMnodeActionUpdate, + .deleteFp = (SdbDeleteFp)mndMnodeActionDelete}; + + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CREATE_MNODE, mndProcessCreateMnodeMsg); + mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_DROP_MNODE, mndProcessDropMnodeMsg); + + return sdbSetTable(pMnode->pSdb, table); +} + +void mndCleanupMnode(SMnode *pMnode) {} + +static int32_t mndCreateDefaultMnode(SMnode *pMnode) { + SMnodeObj mnodeObj = {0}; + mnodeObj.id = 1; + mnodeObj.createdTime = taosGetTimestampMs(); + mnodeObj.updateTime = mnodeObj.createdTime; + + SSdbRaw *pRaw = mndMnodeActionEncode(&mnodeObj); + if (pRaw == NULL) return -1; + sdbSetRawStatus(pRaw, SDB_STATUS_READY); + + mDebug("mnode:%d, will be created while deploy sdb", mnodeObj.id); + return sdbWrite(pMnode->pSdb, pRaw); +} + static SSdbRaw *mndMnodeActionEncode(SMnodeObj *pMnodeObj) { SSdbRaw *pRaw = sdbAllocRaw(SDB_MNODE, SDB_MNODE_VER, sizeof(SMnodeObj)); if (pRaw == NULL) return NULL; @@ -89,42 +130,6 @@ static int32_t mndMnodeActionUpdate(SSdb *pSdb, SMnodeObj *pOldMnode, SMnodeObj return 0; } -static int32_t mndCreateDefaultMnode(SMnode *pMnode) { - SMnodeObj mnodeObj = {0}; - mnodeObj.id = 1; - mnodeObj.createdTime = taosGetTimestampMs(); - mnodeObj.updateTime = mnodeObj.createdTime; - - SSdbRaw *pRaw = mndMnodeActionEncode(&mnodeObj); - if (pRaw == NULL) return -1; - sdbSetRawStatus(pRaw, SDB_STATUS_READY); - - mDebug("mnode:%d, will be created while deploy sdb", mnodeObj.id); - return sdbWrite(pMnode->pSdb, pRaw); -} - -static int32_t mndProcessCreateMnodeMsg(SMnodeMsg *pMsg) { return 0; } - -static int32_t mndProcessDropMnodeMsg(SMnodeMsg *pMsg) { return 0; } - -int32_t mndInitMnode(SMnode *pMnode) { - SSdbTable table = {.sdbType = SDB_MNODE, - .keyType = SDB_KEY_INT32, - .deployFp = (SdbDeployFp)mndCreateDefaultMnode, - .encodeFp = (SdbEncodeFp)mndMnodeActionEncode, - .decodeFp = (SdbDecodeFp)mndMnodeActionDecode, - .insertFp = (SdbInsertFp)mndMnodeActionInsert, - .updateFp = (SdbUpdateFp)mndMnodeActionUpdate, - .deleteFp = (SdbDeleteFp)mndMnodeActionDelete}; - - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_CREATE_MNODE, mndProcessCreateMnodeMsg); - mndSetMsgHandle(pMnode, TSDB_MSG_TYPE_DROP_MNODE, mndProcessDropMnodeMsg); - - return sdbSetTable(pMnode->pSdb, table); -} - -void mndCleanupMnode(SMnode *pMnode) {} - bool mndIsMnode(SMnode *pMnode, int32_t dnodeId) { SSdb *pSdb = pMnode->pSdb; @@ -157,4 +162,8 @@ void mndGetMnodeEpSet(SMnode *pMnode, SEpSet *pEpSet) { pEpSet->numOfEps++; } -} \ No newline at end of file +} + +static int32_t mndProcessCreateMnodeMsg(SMnodeMsg *pMsg) { return 0; } + +static int32_t mndProcessDropMnodeMsg(SMnodeMsg *pMsg) { return 0; }