提交 610b1f41 编写于 作者: C Cary Xu

code optimization

上级 26bc910e
......@@ -113,10 +113,6 @@ extern bool tsdbForceKeepFile;
extern bool tsdbForceCompactFile;
extern bool tsdbEnableUpgradeFile;
#ifdef __TD_6117__
extern bool tsdbQueryFromSMA;
#endif
// balance
extern int8_t tsEnableBalance;
extern int8_t tsAlternativeRole;
......
......@@ -159,10 +159,6 @@ bool tsdbForceKeepFile = false;
bool tsdbForceCompactFile = false; // compact TSDB fileset forcibly
bool tsdbEnableUpgradeFile = false; // upgrade TSDB .head from v0 to v1+
#ifdef __TD_6117__
bool tsdbQueryFromSMA = true;
#endif
// balance
int8_t tsEnableBalance = 1;
int8_t tsAlternativeRole = 0;
......
......@@ -44,8 +44,6 @@ int32_t main(int32_t argc, char *argv[]) {
dump_config = 1;
} else if (strcmp(argv[i], "--enable-upgrade-file") == 0) {
tsdbEnableUpgradeFile = true;
} else if (strcmp(argv[i], "--disable-query-from-sma") == 0) {
tsdbQueryFromSMA = false;
} else if (strcmp(argv[i], "--force-compact-file") == 0) {
tsdbForceCompactFile = true;
} else if (strcmp(argv[i], "--force-keep-file") == 0) {
......
......@@ -450,6 +450,11 @@ typedef enum {
TD_ROW_PARTIAL_UPDATE = 2
} TDUpdateConfig;
typedef enum {
TSDB_STATIS_OK = 0, // statis part exist and load successfully
TSDB_STATIS_NONE = 1, // statis part not exist
} ETsdbStatisStatus;
#define __TD_6117__
extern char *qtypeStr[];
......
......@@ -11480,7 +11480,6 @@ static void testCmdLine() {
}
g_args.test_mode = INSERT_TEST;
g_totalChildTables = 10000;
insertTestProcess();
if (false == g_Dbs.insert_only)
......
......@@ -99,15 +99,6 @@ typedef struct {
SBlock blocks[];
} SBlockInfo;
// definition of SBlockInfoV{#verion}
#define SBlockInfoV(version) \
typedef struct { \
int32_t delimiter; \
int32_t tid; \
uint64_t uid; \
SBlockV##version blocks[]; \
} SBlockInfoV##version;
typedef struct {
int16_t colId;
int32_t len;
......@@ -134,8 +125,6 @@ typedef struct {
#define SBlockCol SBlockColV1 // latest SBlockCol definition
#define SBlockColV(blkVer) SBlockColV##blkVer
typedef struct {
int16_t colId;
int16_t maxIndex;
......@@ -148,8 +137,6 @@ typedef struct {
#define SAggrBlkCol SAggrBlkColV1 // latest SAggrBlkCol definition
#define SAggrBlkColV(blkVer) SAggrBlkColV##blkVer
// Code here just for back-ward compatibility
static FORCE_INLINE void tsdbSetBlockColOffset(SBlockCol *pBlockCol, uint32_t offset) {
pBlockCol->offset = offset & ((((uint32_t)1) << 24) - 1);
......@@ -204,7 +191,7 @@ struct SReadH {
#define TSDB_READ_EXBUF(rh) ((rh)->pExBuf)
#define TSDB_BLOCK_STATIS_SIZE(ncols, blkVer) \
(sizeof(SBlockData) + sizeof(SBlockColV(blkVer)) * (ncols) + sizeof(TSCKSUM))
(sizeof(SBlockData) + sizeof(SBlockColV##blkVer) * (ncols) + sizeof(TSCKSUM))
static FORCE_INLINE size_t tsdbBlockStatisSize(int nCols, uint32_t blkVer) {
switch (blkVer) {
......@@ -217,7 +204,7 @@ static FORCE_INLINE size_t tsdbBlockStatisSize(int nCols, uint32_t blkVer) {
}
#define TSDB_BLOCK_AGGR_SIZE(ncols, blkVer) \
(sizeof(SAggrBlkData) + sizeof(SAggrBlkColV(blkVer)) * (ncols) + sizeof(TSCKSUM))
(sizeof(SAggrBlkData) + sizeof(SAggrBlkColV##blkVer) * (ncols) + sizeof(TSCKSUM))
static FORCE_INLINE size_t tsdbBlockAggrSize(int nCols, uint32_t blkVer) {
switch (blkVer) {
......
......@@ -1080,6 +1080,7 @@ int tsdbWriteBlockImpl(STsdbRepo *pRepo, STable *pTable, SDFile *pDFile, SDFile
// Get # of cols not all NULL(not including key column)
int nColsNotAllNull = 0;
int aggrNum = 0;
for (int ncol = 1; ncol < pDataCols->numOfCols; ncol++) { // ncol from 1, we skip the timestamp column
SDataCol * pDataCol = pDataCols->cols + ncol;
SBlockCol * pBlockCol = pBlockData->cols + nColsNotAllNull;
......@@ -1104,6 +1105,7 @@ int tsdbWriteBlockImpl(STsdbRepo *pRepo, STable *pTable, SDFile *pDFile, SDFile
(*tDataTypes[pDataCol->type].statisFunc)(pDataCol->pData, rowsToWrite, &(pAggrBlkCol->min), &(pAggrBlkCol->max),
&(pAggrBlkCol->sum), &(pAggrBlkCol->minIndex), &(pAggrBlkCol->maxIndex),
&(pAggrBlkCol->numOfNull));
++aggrNum;
}
nColsNotAllNull++;
}
......@@ -1188,14 +1190,17 @@ int tsdbWriteBlockImpl(STsdbRepo *pRepo, STable *pTable, SDFile *pDFile, SDFile
#ifdef __TD_6117__
// pAggrBlkData->delimiter = TSDB_FILE_DELIMITER;
// pAggrBlkData->uid = TABLE_UID(pTable);
pAggrBlkData->numOfCols = nColsNotAllNull;
int aggrStatus = ((aggrNum > 0) && (rowsToWrite > 5)) ? 1 : 0; // TODO: How to make the decision?
if (aggrStatus > 0) {
pAggrBlkData->numOfCols = nColsNotAllNull;
taosCalcChecksumAppend(0, (uint8_t *)pAggrBlkData, tsizeAggr);
tsdbUpdateDFileMagic(pDFileAggr, POINTER_SHIFT(pAggrBlkData, tsizeAggr - sizeof(TSCKSUM)));
taosCalcChecksumAppend(0, (uint8_t *)pAggrBlkData, tsizeAggr);
tsdbUpdateDFileMagic(pDFileAggr, POINTER_SHIFT(pAggrBlkData, tsizeAggr - sizeof(TSCKSUM)));
// Write the whole block to file
if (tsdbAppendDFile(pDFileAggr, (void *)pAggrBlkData, tsizeAggr, &offsetAggr) < tsizeAggr) {
return -1;
// Write the whole block to file
if (tsdbAppendDFile(pDFileAggr, (void *)pAggrBlkData, tsizeAggr, &offsetAggr) < tsizeAggr) {
return -1;
}
}
#endif
......@@ -1211,7 +1216,7 @@ int tsdbWriteBlockImpl(STsdbRepo *pRepo, STable *pTable, SDFile *pDFile, SDFile
pBlock->keyFirst = dataColsKeyFirst(pDataCols);
pBlock->keyLast = dataColsKeyLast(pDataCols);
#ifdef __TD_6117__
pBlock->hasAggr = 1;
pBlock->hasAggr = aggrStatus;
pBlock->blkVer = SBlockVerLatest;
pBlock->aggrOffset = offsetAggr;
pBlock->aggrLen = tsizeAggr;
......
......@@ -3368,8 +3368,12 @@ int32_t tsdbRetrieveDataBlockStatisInfo(TsdbQueryHandleT* pQueryHandle, SDataSta
}
int64_t stime = taosGetTimestampUs();
if (tsdbLoadBlockStatis(&pHandle->rhelper, pBlockInfo->compBlock) < 0) {
int statisStatus = tsdbLoadBlockStatis(&pHandle->rhelper, pBlockInfo->compBlock);
if (statisStatus < TSDB_STATIS_OK) {
return terrno;
} else if (statisStatus > TSDB_STATIS_OK) {
*pBlockStatis = NULL;
return TSDB_CODE_SUCCESS;
}
int16_t* colIds = pHandle->defaultLoadColumn->pData;
......
......@@ -63,13 +63,12 @@ int tsdbInitReadH(SReadH *pReadh, STsdbRepo *pRepo) {
void tsdbDestroyReadH(SReadH *pReadh) {
if (pReadh == NULL) return;
#ifdef __TD_6117__
pReadh->pExBuf = taosTZfree(pReadh->pExBuf);
#endif
pReadh->pCBuf = taosTZfree(pReadh->pCBuf);
pReadh->pBuf = taosTZfree(pReadh->pBuf);
pReadh->pDCols[0] = tdFreeDataCols(pReadh->pDCols[0]);
pReadh->pDCols[1] = tdFreeDataCols(pReadh->pDCols[1]);
pReadh->pAggrBlkData = taosTZfree(pReadh->pAggrBlkData);
pReadh->pBlkData = taosTZfree(pReadh->pBlkData);
pReadh->pBlkInfo = taosTZfree(pReadh->pBlkInfo);
pReadh->cidx = 0;
......@@ -450,9 +449,7 @@ static int tsdbLoadBlockStatisFromDFile(SReadH *pReadh, SBlock *pBlock) {
}
static int tsdbLoadBlockStatisFromAggr(SReadH *pReadh, SBlock *pBlock) {
if(!pBlock->hasAggr) {
return 0;
}
ASSERT((pBlock->blkVer > TSDB_SBLK_VER_0) && pBlock->hasAggr); // TODO: remove after pass all the test
SDFile *pDFileAggr = TSDB_READ_AGGR_FILE(pReadh);
if (tsdbSeekDFile(pDFileAggr, pBlock->aggrOffset, SEEK_SET) < 0) {
......@@ -495,8 +492,10 @@ int tsdbLoadBlockStatis(SReadH *pReadh, SBlock *pBlock) {
ASSERT(pBlock->numOfSubBlocks <= 1);
if (pBlock->blkVer > TSDB_SBLK_VER_0) {
tsdbLoadBlockStatisFromAggr(pReadh, pBlock);
if (pBlock->hasAggr) {
return tsdbLoadBlockStatisFromAggr(pReadh, pBlock);
}
return TSDB_STATIS_NONE;
}
return tsdbLoadBlockStatisFromDFile(pReadh, pBlock);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册