From 81e83ee44684fa7019948d606bba41a3548275ff Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Thu, 16 Dec 2021 18:04:07 +0800 Subject: [PATCH] TD-10431 change hash range --- include/common/taosmsg.h | 4 ++-- source/dnode/mgmt/impl/test/db/db.cpp | 6 +++--- source/dnode/mgmt/impl/test/dnode/dnode.cpp | 2 +- source/dnode/mnode/impl/inc/mndDef.h | 5 +++-- source/dnode/mnode/impl/src/mndDb.c | 18 ++++++++++++++++++ source/dnode/mnode/impl/src/mndStb.c | 8 ++++++-- source/dnode/mnode/impl/src/mndVgroup.c | 12 ++++++------ 7 files changed, 39 insertions(+), 16 deletions(-) diff --git a/include/common/taosmsg.h b/include/common/taosmsg.h index 1ed02ca21e..eb2adda394 100644 --- a/include/common/taosmsg.h +++ b/include/common/taosmsg.h @@ -807,8 +807,8 @@ typedef struct SSTableVgroupMsg { typedef struct SVgroupInfo { int32_t vgId; - int32_t hashBegin; - int32_t hashEnd; + uint32_t hashBegin; + uint32_t hashEnd; int8_t inUse; int8_t numOfEps; SEpAddrMsg epAddr[TSDB_MAX_REPLICA]; diff --git a/source/dnode/mgmt/impl/test/db/db.cpp b/source/dnode/mgmt/impl/test/db/db.cpp index 65756b7daa..c2c5377062 100644 --- a/source/dnode/mgmt/impl/test/db/db.cpp +++ b/source/dnode/mgmt/impl/test/db/db.cpp @@ -436,7 +436,7 @@ TEST_F(DndTestDb, 03_Create_Use_Restart_Use_Db) { pInfo->hashEnd = htonl(pInfo->hashEnd); EXPECT_GT(pInfo->vgId, 0); EXPECT_EQ(pInfo->hashBegin, 0); - EXPECT_EQ(pInfo->hashEnd, INT32_MAX / 2 - 1); + EXPECT_EQ(pInfo->hashEnd, UINT32_MAX / 2 - 1); EXPECT_EQ(pInfo->inUse, 0); EXPECT_EQ(pInfo->numOfEps, 1); SEpAddrMsg* pAddr = &pInfo->epAddr[0]; @@ -451,8 +451,8 @@ TEST_F(DndTestDb, 03_Create_Use_Restart_Use_Db) { pInfo->hashBegin = htonl(pInfo->hashBegin); pInfo->hashEnd = htonl(pInfo->hashEnd); EXPECT_GT(pInfo->vgId, 0); - EXPECT_EQ(pInfo->hashBegin, INT32_MAX / 2); - EXPECT_EQ(pInfo->hashEnd, INT32_MAX); + EXPECT_EQ(pInfo->hashBegin, UINT32_MAX / 2); + EXPECT_EQ(pInfo->hashEnd, UINT32_MAX); EXPECT_EQ(pInfo->inUse, 0); EXPECT_EQ(pInfo->numOfEps, 1); SEpAddrMsg* pAddr = &pInfo->epAddr[0]; diff --git a/source/dnode/mgmt/impl/test/dnode/dnode.cpp b/source/dnode/mgmt/impl/test/dnode/dnode.cpp index 6989edd843..2c1c85f200 100644 --- a/source/dnode/mgmt/impl/test/dnode/dnode.cpp +++ b/source/dnode/mgmt/impl/test/dnode/dnode.cpp @@ -220,7 +220,7 @@ TEST_F(DndTestDnode, 02_ConfigDnode) { ASSERT_EQ(pMsg->code, 0); } -TEST_F(DndTestDnode, 03_Create_Drop_Reatrt_Dnode) { +TEST_F(DndTestDnode, 03_Create_Drop_Restart_Dnode) { { SCreateDnodeMsg* pReq = (SCreateDnodeMsg*)rpcMallocCont(sizeof(SCreateDnodeMsg)); strcpy(pReq->ep, "localhost:9042"); diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index 5a678118f3..74138500bd 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -224,8 +224,8 @@ typedef struct { int64_t createdTime; int64_t updateTime; int32_t version; - int32_t hashBegin; - int32_t hashEnd; + uint32_t hashBegin; + uint32_t hashEnd; char dbName[TSDB_FULL_DB_NAME_LEN]; int64_t dbUid; int32_t numOfTables; @@ -244,6 +244,7 @@ typedef struct { int64_t createdTime; int64_t updateTime; uint64_t uid; + uint64_t dbUid; int32_t version; int32_t numOfColumns; int32_t numOfTags; diff --git a/source/dnode/mnode/impl/src/mndDb.c b/source/dnode/mnode/impl/src/mndDb.c index 1c78ec5408..01d6dfc960 100644 --- a/source/dnode/mnode/impl/src/mndDb.c +++ b/source/dnode/mnode/impl/src/mndDb.c @@ -283,6 +283,14 @@ static int32_t mndSetCommitLogs(SMnode *pMnode, STrans *pTrans, SDbObj *pDb, SVg return 0; } +static int32_t mndSetRedoActions(SMnode *pMnode, STrans *pTrans, SDbObj *pDb, SVgObj *pVgroups) { + return 0; +} + +static int32_t mndSetUndoActions(SMnode *pMnode, STrans *pTrans, SDbObj *pDb, SVgObj *pVgroups) { + return 0; +} + static int32_t mndCreateDb(SMnode *pMnode, SMnodeMsg *pMsg, SCreateDbMsg *pCreate, SUserObj *pUser) { SDbObj dbObj = {0}; tstrncpy(dbObj.name, pCreate->db, TSDB_FULL_DB_NAME_LEN); @@ -354,6 +362,16 @@ static int32_t mndCreateDb(SMnode *pMnode, SMnodeMsg *pMsg, SCreateDbMsg *pCreat goto CREATE_DB_OVER; } + if (mndSetRedoActions(pMnode, pTrans, &dbObj, pVgroups) != 0) { + mError("trans:%d, failed to set redo actions since %s", pTrans->id, terrstr()); + goto CREATE_DB_OVER; + } + + if (mndSetUndoActions(pMnode, pTrans, &dbObj, pVgroups) != 0) { + mError("trans:%d, failed to set redo actions since %s", pTrans->id, terrstr()); + goto CREATE_DB_OVER; + } + if (mndTransPrepare(pMnode, pTrans) != 0) { mError("trans:%d, failed to prepare since %s", pTrans->id, terrstr()); goto CREATE_DB_OVER; diff --git a/source/dnode/mnode/impl/src/mndStb.c b/source/dnode/mnode/impl/src/mndStb.c index 791b6f5d12..2201f35431 100644 --- a/source/dnode/mnode/impl/src/mndStb.c +++ b/source/dnode/mnode/impl/src/mndStb.c @@ -74,10 +74,12 @@ static SSdbRaw *mndStbActionEncode(SStbObj *pStb) { if (pRaw == NULL) return NULL; int32_t dataPos = 0; - SDB_SET_BINARY(pRaw, dataPos, pStb->name, TSDB_TABLE_NAME_LEN) + SDB_SET_BINARY(pRaw, dataPos, pStb->name, TSDB_TABLE_FNAME_LEN) + SDB_SET_BINARY(pRaw, dataPos, pStb->db, TSDB_FULL_DB_NAME_LEN) SDB_SET_INT64(pRaw, dataPos, pStb->createdTime) SDB_SET_INT64(pRaw, dataPos, pStb->updateTime) SDB_SET_INT64(pRaw, dataPos, pStb->uid) + SDB_SET_INT64(pRaw, dataPos, pStb->dbUid) SDB_SET_INT64(pRaw, dataPos, pStb->version) SDB_SET_INT32(pRaw, dataPos, pStb->numOfColumns) SDB_SET_INT32(pRaw, dataPos, pStb->numOfTags) @@ -113,10 +115,12 @@ static SSdbRow *mndStbActionDecode(SSdbRaw *pRaw) { if (pStb == NULL) return NULL; int32_t dataPos = 0; - SDB_GET_BINARY(pRaw, pRow, dataPos, pStb->name, TSDB_TABLE_NAME_LEN) + SDB_GET_BINARY(pRaw, pRow, dataPos, pStb->name, TSDB_TABLE_FNAME_LEN) + SDB_GET_BINARY(pRaw, pRow, dataPos, pStb->db, TSDB_FULL_DB_NAME_LEN) SDB_GET_INT64(pRaw, pRow, dataPos, &pStb->createdTime) SDB_GET_INT64(pRaw, pRow, dataPos, &pStb->updateTime) SDB_GET_INT64(pRaw, pRow, dataPos, &pStb->uid) + SDB_GET_INT64(pRaw, pRow, dataPos, &pStb->dbUid) SDB_GET_INT32(pRaw, pRow, dataPos, &pStb->version) SDB_GET_INT32(pRaw, pRow, dataPos, &pStb->numOfColumns) SDB_GET_INT32(pRaw, pRow, dataPos, &pStb->numOfTags) diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index 7dfe8c26ea..59b39976fb 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -213,13 +213,13 @@ int32_t mndAllocVgroup(SMnode *pMnode, SDbObj *pDb, SVgObj **ppVgroups) { return -1; } - int32_t alloceVgroups = 0; - int32_t maxVgId = sdbGetMaxId(pMnode->pSdb, SDB_VGROUP); - int32_t hashMin = 0; - int32_t hashMax = INT32_MAX; - int32_t hashInterval = (hashMax - hashMin) / pDb->numOfVgroups; + int32_t alloceVgroups = 0; + int32_t maxVgId = sdbGetMaxId(pMnode->pSdb, SDB_VGROUP); + uint32_t hashMin = 0; + uint32_t hashMax = UINT32_MAX; + uint32_t hashInterval = (hashMax - hashMin) / pDb->numOfVgroups; - for (int32_t v = 0; v < pDb->numOfVgroups; v++) { + for (uint32_t v = 0; v < pDb->numOfVgroups; v++) { SVgObj *pVgroup = &pVgroups[v]; pVgroup->vgId = maxVgId++; pVgroup->createdTime = taosGetTimestampMs();