From 204999d57ecc91f28890a9371a5d42b10f3be587 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 26 Jun 2023 08:10:45 +0800 Subject: [PATCH] tdb/test: refactor page recycling test cases --- source/libs/tdb/src/db/tdbBtree.c | 8 +- source/libs/tdb/test/tdbPageRecycleTest.cpp | 86 ++++----------------- 2 files changed, 15 insertions(+), 79 deletions(-) diff --git a/source/libs/tdb/src/db/tdbBtree.c b/source/libs/tdb/src/db/tdbBtree.c index 3afdb9a84f..64ae8d1c3f 100644 --- a/source/libs/tdb/src/db/tdbBtree.c +++ b/source/libs/tdb/src/db/tdbBtree.c @@ -860,10 +860,9 @@ static int tdbBtreeBalanceNonRoot(SBTree *pBt, SPage *pParent, int idx, TXN *pTx if (!TDB_BTREE_PAGE_IS_LEAF(pNews[0])) { ((SIntHdr *)(pParent->pData))->pgno = ((SIntHdr *)(pNews[0]->pData))->pgno; - } // else { - // printf("tdb/balance: btree balance delete pgno: %d.\n", TDB_PAGE_PGNO(pNews[0])); + } + tdbPagerInsertFreePage(pBt->pPager, TDB_PAGE_PGNO(pNews[0]), pTxn); - //} } for (int i = 0; i < 3; i++) { @@ -873,15 +872,12 @@ static int tdbBtreeBalanceNonRoot(SBTree *pBt, SPage *pParent, int idx, TXN *pTx } for (pageIdx = 0; pageIdx < nOlds; ++pageIdx) { - // printf("tdb/balance: btree balance old pgno: %d.\n", TDB_PAGE_PGNO(pOlds[pageIdx])); if (pageIdx >= nNews) { - // printf("tdb/balance: btree balance delete pgno: %d.\n", TDB_PAGE_PGNO(pOlds[pageIdx])); tdbPagerInsertFreePage(pBt->pPager, TDB_PAGE_PGNO(pOlds[pageIdx]), pTxn); } tdbPagerReturnPage(pBt->pPager, pOlds[pageIdx], pTxn); } for (; pageIdx < nNews; ++pageIdx) { - // printf("tdb/balance: btree balance new pgno: %d.\n", TDB_PAGE_PGNO(pNews[pageIdx])); tdbPagerReturnPage(pBt->pPager, pNews[pageIdx], pTxn); } diff --git a/source/libs/tdb/test/tdbPageRecycleTest.cpp b/source/libs/tdb/test/tdbPageRecycleTest.cpp index e4787fcc70..05b19fc4eb 100644 --- a/source/libs/tdb/test/tdbPageRecycleTest.cpp +++ b/source/libs/tdb/test/tdbPageRecycleTest.cpp @@ -464,31 +464,25 @@ TEST(TdbPageRecycleTest, DISABLED_simple_insert1) { GTEST_ASSERT_EQ(ret, 0); } -static const int nDataConst = 256 * 19; +static void clearDb(char const *db) { taosRemoveDir(db); } -// TEST(TdbPageRecycleTest, DISABLED_seq_insert) { -TEST(TdbPageRecycleTest, seq_insert) { +static void insertDb(int nData) { int ret = 0; TDB *pEnv = NULL; TTB *pDb = NULL; tdb_cmpr_fn_t compFunc; - int nData = nDataConst; TXN *txn = NULL; int const pageSize = 4 * 1024; - taosRemoveDir("tdb"); - // Open Env ret = tdbOpen("tdb", pageSize, 64, &pEnv, 0); GTEST_ASSERT_EQ(ret, 0); - printf("tdb opened\n"); // Create a database compFunc = tKeyCmpr; ret = tdbTbOpen("db.db", -1, -1, compFunc, pEnv, &pDb, 0); GTEST_ASSERT_EQ(ret, 0); - printf("tb opened\n"); // 1, insert nData kv { char key[64]; @@ -540,13 +534,11 @@ TEST(TdbPageRecycleTest, seq_insert) { system("ls -l ./tdb"); } -// TEST(TdbPageRecycleTest, DISABLED_seq_delete) { -TEST(TdbPageRecycleTest, seq_delete) { +static void deleteDb(int nData) { int ret = 0; TDB *pEnv = NULL; TTB *pDb = NULL; tdb_cmpr_fn_t compFunc; - int nData = nDataConst; TXN *txn = NULL; int const pageSize = 4 * 1024; @@ -612,68 +604,16 @@ TEST(TdbPageRecycleTest, seq_delete) { system("ls -l ./tdb"); } -// TEST(TdbPageRecycleTest, DISABLED_recycly_insert) { -TEST(TdbPageRecycleTest, recycly_insert) { - int ret = 0; - TDB *pEnv = NULL; - TTB *pDb = NULL; - tdb_cmpr_fn_t compFunc = tKeyCmpr; - int nData = nDataConst; - TXN *txn = NULL; - int const pageSize = 4 * 1024; - - // Open Env - ret = tdbOpen("tdb", pageSize, 64, &pEnv, 0); - GTEST_ASSERT_EQ(ret, 0); - - // Create a database - ret = tdbTbOpen("db.db", -1, -1, compFunc, pEnv, &pDb, 0); - GTEST_ASSERT_EQ(ret, 0); - - // 3, insert 32k records - { - char key[64]; - char val[(4083 - 4 - 3 - 2) + 1]; // pSize(4096) - amSize(1) - pageHdr(8) - footerSize(4) - int64_t poolLimit = 4096; - SPoolMem *pPool; - - // open the pool - pPool = openPool(); - - // start a transaction - tdbBegin(pEnv, &txn, poolMalloc, poolFree, pPool, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED); - - // for (int iData = nData; iData < nData + nData; iData++) { - for (int iData = 0; iData < nData; iData++) { - sprintf(key, "key%03d", iData); - sprintf(val, "value%03d", iData); - - ret = tdbTbInsert(pDb, key, strlen(key), val, strlen(val), txn); - GTEST_ASSERT_EQ(ret, 0); - - if (pPool->size >= poolLimit) { - tdbCommit(pEnv, txn); - tdbPostCommit(pEnv, txn); - - // start a new transaction - clearPool(pPool); - - tdbBegin(pEnv, &txn, poolMalloc, poolFree, pPool, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED); - } - } - - tdbCommit(pEnv, txn); - tdbPostCommit(pEnv, txn); - - closePool(pPool); - } +static const int nDataConst = 256 * 19; - // Close a database - tdbTbClose(pDb); +// TEST(TdbPageRecycleTest, DISABLED_seq_insert) { +TEST(TdbPageRecycleTest, seq_insert) { + clearDb("tdb"); + insertDb(nDataConst); +} - // Close Env - ret = tdbClose(pEnv); - GTEST_ASSERT_EQ(ret, 0); +// TEST(TdbPageRecycleTest, DISABLED_seq_delete) { +TEST(TdbPageRecycleTest, seq_delete) { deleteDb(nDataConst); } - system("ls -l ./tdb"); -} +// TEST(TdbPageRecycleTest, DISABLED_recycly_insert) { +TEST(TdbPageRecycleTest, recycly_insert) { insertDb(nDataConst); } -- GitLab