From e878f1dcba6f7c39d3d49768852c522fc5cb0067 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Fri, 1 Jul 2022 10:16:38 +0800 Subject: [PATCH] fix: make dnode sort stable --- source/dnode/mnode/impl/src/mndVgroup.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index d42016e6a0..4b9f925eb5 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -426,7 +426,11 @@ static int32_t mndCompareDnodeId(int32_t *dnode1Id, int32_t *dnode2Id) { return static int32_t mndCompareDnodeVnodes(SDnodeObj *pDnode1, SDnodeObj *pDnode2) { float d1Score = (float)pDnode1->numOfVnodes / pDnode1->numOfSupportVnodes; float d2Score = (float)pDnode2->numOfVnodes / pDnode2->numOfSupportVnodes; - return d1Score >= d2Score ? 1 : 0; + if (d1Score == d2Score) { + return pDnode2->id - pDnode1->id; + } else { + return d1Score >= d2Score ? 1 : 0; + } } void mndSortVnodeGid(SVgObj *pVgroup) {