From da867c0c54a0e9f0555af25945f3988b2fb2ac21 Mon Sep 17 00:00:00 2001 From: hzcheng Date: Tue, 21 Apr 2020 09:34:23 +0800 Subject: [PATCH 1/4] TD-100 --- src/tsdb/tests/tsdbTests.cpp | 49 +++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/tsdb/tests/tsdbTests.cpp b/src/tsdb/tests/tsdbTests.cpp index 8c59d63cb2..8c441bee21 100644 --- a/src/tsdb/tests/tsdbTests.cpp +++ b/src/tsdb/tests/tsdbTests.cpp @@ -4,6 +4,7 @@ #include "tdataformat.h" #include "tsdbMain.h" +#include "tskiplist.h" static double getCurTime() { struct timeval tv; @@ -125,8 +126,8 @@ TEST(TsdbTest, DISABLED_tableEncodeDecode) { ASSERT_EQ(memcmp(pTable->schema, tTable->schema, sizeof(STSchema) + sizeof(STColumn) * nCols), 0); } -// TEST(TsdbTest, DISABLED_createRepo) { -TEST(TsdbTest, createRepo) { +TEST(TsdbTest, DISABLED_createRepo) { +// TEST(TsdbTest, createRepo) { STsdbCfg config; STsdbRepo *repo; @@ -167,7 +168,7 @@ TEST(TsdbTest, createRepo) { .sversion = tCfg.sversion, .startTime = 1584081000000, .interval = 1000, - .totalRows = 5000000, + .totalRows = 10000000, .rowsPerSubmit = 1, .pSchema = schema }; @@ -262,4 +263,46 @@ TEST(TsdbTest, DISABLED_createFileGroup) { // ASSERT_EQ(tsdbCreateFileGroup("/home/ubuntu/work/ttest/vnode0/data", 1820, &fGroup, 1000), 0); int k = 0; +} + +static char *getTKey(const void *data) { + return (char *)data; +} + +static void insertSkipList(bool isAscend) { + TSKEY start_time = 1587393453000; + TSKEY interval = 1000; + + SSkipList *pList = tSkipListCreate(5, TSDB_DATA_TYPE_TIMESTAMP, sizeof(TSKEY), 0, 0, 1, getTKey); + ASSERT_NE(pList, nullptr); + + for (size_t i = 0; i < 20000000; i++) + { + TSKEY time = isAscend ? (start_time + i * interval) : (start_time - i * interval); + int32_t level = 0; + int32_t headSize = 0; + + tSkipListNewNodeInfo(pList, &level, &headSize); + SSkipListNode *pNode = (SSkipListNode *)malloc(headSize + sizeof(TSKEY)); + ASSERT_NE(pNode, nullptr); + pNode->level = level; + *(TSKEY *)((char *)pNode + headSize) = time; + tSkipListPut(pList, pNode); + } + + tSkipListDestroy(pList); +} + +TEST(TsdbTest, testSkipList) { + double stime = getCurTime(); + insertSkipList(true); + double etime = getCurTime(); + + printf("Time used to insert 100000000 records takes %f seconds\n", etime-stime); + + stime = getCurTime(); + insertSkipList(false); + etime = getCurTime(); + + printf("Time used to insert 100000000 records takes %f seconds\n", etime-stime); } \ No newline at end of file From 46b13b8ad1aac20f3555e27adc97e931a7888e44 Mon Sep 17 00:00:00 2001 From: hzcheng Date: Tue, 21 Apr 2020 13:42:36 +0800 Subject: [PATCH 2/4] Fix valgrind warning --- src/tsdb/src/tsdbMain.c | 3 ++- src/tsdb/src/tsdbRWHelper.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index 648188cdae..925ff32cb5 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -387,7 +387,7 @@ int tsdbInitTableCfg(STableCfg *config, ETableType type, int64_t uid, int32_t ti config->superUid = TSDB_INVALID_SUPER_TABLE_ID; config->tableId.uid = uid; config->tableId.tid = tid; - config->name = strdup("test1"); + config->name = NULL; return 0; } @@ -880,6 +880,7 @@ static void *tsdbCommitData(void *arg) { _exit: tdFreeDataCols(pDataCols); tsdbDestroyTableIters(iters, pCfg->maxTables); + tsdbDestroyHelper(&whelper); tsdbLockRepo(arg); tdListMove(pCache->imem->list, pCache->pool.memPool); diff --git a/src/tsdb/src/tsdbRWHelper.c b/src/tsdb/src/tsdbRWHelper.c index c0f509d1f2..8b5364e362 100644 --- a/src/tsdb/src/tsdbRWHelper.c +++ b/src/tsdb/src/tsdbRWHelper.c @@ -403,6 +403,7 @@ int tsdbWriteCompInfo(SRWHelper *pHelper) { } else { pHelper->pCompInfo->delimiter = TSDB_FILE_DELIMITER; pHelper->pCompInfo->uid = pHelper->tableInfo.uid; + pHelper->pCompInfo->checksum = 0; ASSERT((pIdx->len - sizeof(SCompInfo) - sizeof(TSCKSUM)) % sizeof(SCompBlock) == 0); taosCalcChecksumAppend(0, (uint8_t *)pHelper->pCompInfo, pIdx->len); pIdx->offset = lseek(pHelper->files.nHeadF.fd, 0, SEEK_END); From d9a60557fb7901d22e77780dbe6e1334d9bbda82 Mon Sep 17 00:00:00 2001 From: hzcheng Date: Tue, 21 Apr 2020 14:00:56 +0800 Subject: [PATCH 3/4] nothing --- src/tsdb/tests/tsdbTests.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tsdb/tests/tsdbTests.cpp b/src/tsdb/tests/tsdbTests.cpp index 8c441bee21..84711b07f8 100644 --- a/src/tsdb/tests/tsdbTests.cpp +++ b/src/tsdb/tests/tsdbTests.cpp @@ -126,8 +126,8 @@ TEST(TsdbTest, DISABLED_tableEncodeDecode) { ASSERT_EQ(memcmp(pTable->schema, tTable->schema, sizeof(STSchema) + sizeof(STColumn) * nCols), 0); } -TEST(TsdbTest, DISABLED_createRepo) { -// TEST(TsdbTest, createRepo) { +// TEST(TsdbTest, DISABLED_createRepo) { +TEST(TsdbTest, createRepo) { STsdbCfg config; STsdbRepo *repo; @@ -142,6 +142,7 @@ TEST(TsdbTest, DISABLED_createRepo) { STableCfg tCfg; ASSERT_EQ(tsdbInitTableCfg(&tCfg, TSDB_SUPER_TABLE, 987607499877672L, 0), -1); ASSERT_EQ(tsdbInitTableCfg(&tCfg, TSDB_NORMAL_TABLE, 987607499877672L, 0), 0); + tsdbTableSetName(&tCfg, "test", false); int nCols = 5; STSchema *schema = tdNewSchema(nCols); @@ -293,7 +294,8 @@ static void insertSkipList(bool isAscend) { tSkipListDestroy(pList); } -TEST(TsdbTest, testSkipList) { +TEST(TsdbTest, DISABLED_testSkipList) { +// TEST(TsdbTest, testSkipList) { double stime = getCurTime(); insertSkipList(true); double etime = getCurTime(); From 4db9f9189b93f6d9479bee18dbe0884ce43b81c3 Mon Sep 17 00:00:00 2001 From: hzcheng Date: Tue, 21 Apr 2020 18:47:23 +0800 Subject: [PATCH 4/4] fix wal call error --- src/tsdb/src/tsdbMain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tsdb/src/tsdbMain.c b/src/tsdb/src/tsdbMain.c index 925ff32cb5..9a97c773c4 100644 --- a/src/tsdb/src/tsdbMain.c +++ b/src/tsdb/src/tsdbMain.c @@ -282,6 +282,8 @@ int32_t tsdbConfigRepo(TsdbRepoT *repo, STsdbCfg *pCfg) { int32_t tsdbTriggerCommit(TsdbRepoT *repo) { STsdbRepo *pRepo = (STsdbRepo *)repo; + + if (pRepo->appH.walCallBack) pRepo->appH.walCallBack(pRepo->appH.appH); tsdbLockRepo(repo); if (pRepo->commit) { @@ -854,8 +856,6 @@ static void *tsdbCommitData(void *arg) { SRWHelper whelper = {0}; if (pCache->imem == NULL) return NULL; - if (pRepo->appH.walCallBack) pRepo->appH.walCallBack(pRepo->appH.appH); - // Create the iterator to read from cache SSkipListIterator **iters = tsdbCreateTableIters(pMeta, pCfg->maxTables); if (iters == NULL) {