Merge pull request #15560 from taosdata/fix/hzcheng_3.0
refact: do some insert optimization
This commit is contained in:
commit
2a09e0039a
|
@ -97,7 +97,6 @@ int32_t tRowMergerGetRow(SRowMerger *pMerger, STSRow **ppRow);
|
||||||
// TABLEID
|
// TABLEID
|
||||||
int32_t tTABLEIDCmprFn(const void *p1, const void *p2);
|
int32_t tTABLEIDCmprFn(const void *p1, const void *p2);
|
||||||
// TSDBKEY
|
// TSDBKEY
|
||||||
int32_t tsdbKeyCmprFn(const void *p1, const void *p2);
|
|
||||||
#define MIN_TSDBKEY(KEY1, KEY2) ((tsdbKeyCmprFn(&(KEY1), &(KEY2)) < 0) ? (KEY1) : (KEY2))
|
#define MIN_TSDBKEY(KEY1, KEY2) ((tsdbKeyCmprFn(&(KEY1), &(KEY2)) < 0) ? (KEY1) : (KEY2))
|
||||||
#define MAX_TSDBKEY(KEY1, KEY2) ((tsdbKeyCmprFn(&(KEY1), &(KEY2)) > 0) ? (KEY1) : (KEY2))
|
#define MAX_TSDBKEY(KEY1, KEY2) ((tsdbKeyCmprFn(&(KEY1), &(KEY2)) > 0) ? (KEY1) : (KEY2))
|
||||||
// SBlockCol
|
// SBlockCol
|
||||||
|
@ -558,6 +557,26 @@ struct STsdbReadSnap {
|
||||||
STsdbFS fs;
|
STsdbFS fs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ========== inline functions ==========
|
||||||
|
static FORCE_INLINE int32_t tsdbKeyCmprFn(const void *p1, const void *p2) {
|
||||||
|
TSDBKEY *pKey1 = (TSDBKEY *)p1;
|
||||||
|
TSDBKEY *pKey2 = (TSDBKEY *)p2;
|
||||||
|
|
||||||
|
if (pKey1->ts < pKey2->ts) {
|
||||||
|
return -1;
|
||||||
|
} else if (pKey1->ts > pKey2->ts) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pKey1->version < pKey2->version) {
|
||||||
|
return -1;
|
||||||
|
} else if (pKey1->version > pKey2->version) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -183,11 +183,11 @@ int metaClose(SMeta *pMeta) {
|
||||||
int32_t metaRLock(SMeta *pMeta) {
|
int32_t metaRLock(SMeta *pMeta) {
|
||||||
int32_t ret = 0;
|
int32_t ret = 0;
|
||||||
|
|
||||||
metaDebug("meta rlock %p B", &pMeta->lock);
|
metaTrace("meta rlock %p B", &pMeta->lock);
|
||||||
|
|
||||||
ret = taosThreadRwlockRdlock(&pMeta->lock);
|
ret = taosThreadRwlockRdlock(&pMeta->lock);
|
||||||
|
|
||||||
metaDebug("meta rlock %p E", &pMeta->lock);
|
metaTrace("meta rlock %p E", &pMeta->lock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -195,11 +195,11 @@ int32_t metaRLock(SMeta *pMeta) {
|
||||||
int32_t metaWLock(SMeta *pMeta) {
|
int32_t metaWLock(SMeta *pMeta) {
|
||||||
int32_t ret = 0;
|
int32_t ret = 0;
|
||||||
|
|
||||||
metaDebug("meta wlock %p B", &pMeta->lock);
|
metaTrace("meta wlock %p B", &pMeta->lock);
|
||||||
|
|
||||||
ret = taosThreadRwlockWrlock(&pMeta->lock);
|
ret = taosThreadRwlockWrlock(&pMeta->lock);
|
||||||
|
|
||||||
metaDebug("meta wlock %p E", &pMeta->lock);
|
metaTrace("meta wlock %p E", &pMeta->lock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -207,11 +207,11 @@ int32_t metaWLock(SMeta *pMeta) {
|
||||||
int32_t metaULock(SMeta *pMeta) {
|
int32_t metaULock(SMeta *pMeta) {
|
||||||
int32_t ret = 0;
|
int32_t ret = 0;
|
||||||
|
|
||||||
metaDebug("meta ulock %p B", &pMeta->lock);
|
metaTrace("meta ulock %p B", &pMeta->lock);
|
||||||
|
|
||||||
ret = taosThreadRwlockUnlock(&pMeta->lock);
|
ret = taosThreadRwlockUnlock(&pMeta->lock);
|
||||||
|
|
||||||
metaDebug("meta ulock %p E", &pMeta->lock);
|
metaTrace("meta ulock %p E", &pMeta->lock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -307,7 +307,11 @@ static int32_t tsdbCommitFileDataStart(SCommitter *pCommitter) {
|
||||||
fLast = (SLastFile){.commitID = pCommitter->commitID, .size = 0};
|
fLast = (SLastFile){.commitID = pCommitter->commitID, .size = 0};
|
||||||
fSma = *pRSet->pSmaF;
|
fSma = *pRSet->pSmaF;
|
||||||
} else {
|
} else {
|
||||||
wSet.diskId = (SDiskID){.level = 0, .id = 0};
|
SDiskID did = {0};
|
||||||
|
|
||||||
|
tfsAllocDisk(pTsdb->pVnode->pTfs, 0, &did);
|
||||||
|
|
||||||
|
wSet.diskId = did;
|
||||||
wSet.fid = pCommitter->commitFid;
|
wSet.fid = pCommitter->commitFid;
|
||||||
fHead = (SHeadFile){.commitID = pCommitter->commitID, .offset = 0, .size = 0};
|
fHead = (SHeadFile){.commitID = pCommitter->commitID, .offset = 0, .size = 0};
|
||||||
fData = (SDataFile){.commitID = pCommitter->commitID, .size = 0};
|
fData = (SDataFile){.commitID = pCommitter->commitID, .size = 0};
|
||||||
|
|
|
@ -151,26 +151,6 @@ int32_t tTABLEIDCmprFn(const void *p1, const void *p2) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TSDBKEY =======================================================================
|
|
||||||
int32_t tsdbKeyCmprFn(const void *p1, const void *p2) {
|
|
||||||
TSDBKEY *pKey1 = (TSDBKEY *)p1;
|
|
||||||
TSDBKEY *pKey2 = (TSDBKEY *)p2;
|
|
||||||
|
|
||||||
if (pKey1->ts < pKey2->ts) {
|
|
||||||
return -1;
|
|
||||||
} else if (pKey1->ts > pKey2->ts) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pKey1->version < pKey2->version) {
|
|
||||||
return -1;
|
|
||||||
} else if (pKey1->version > pKey2->version) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TSDBKEY ======================================================
|
// TSDBKEY ======================================================
|
||||||
static FORCE_INLINE int32_t tPutTSDBKEY(uint8_t *p, TSDBKEY *pKey) {
|
static FORCE_INLINE int32_t tPutTSDBKEY(uint8_t *p, TSDBKEY *pKey) {
|
||||||
int32_t n = 0;
|
int32_t n = 0;
|
||||||
|
@ -1401,7 +1381,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_BOOL:
|
case TSDB_DATA_TYPE_BOOL:
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_TINYINT:{
|
case TSDB_DATA_TYPE_TINYINT: {
|
||||||
pColAgg->sum += colVal.value.i8;
|
pColAgg->sum += colVal.value.i8;
|
||||||
if (pColAgg->min > colVal.value.i8) {
|
if (pColAgg->min > colVal.value.i8) {
|
||||||
pColAgg->min = colVal.value.i8;
|
pColAgg->min = colVal.value.i8;
|
||||||
|
@ -1411,7 +1391,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_SMALLINT:{
|
case TSDB_DATA_TYPE_SMALLINT: {
|
||||||
pColAgg->sum += colVal.value.i16;
|
pColAgg->sum += colVal.value.i16;
|
||||||
if (pColAgg->min > colVal.value.i16) {
|
if (pColAgg->min > colVal.value.i16) {
|
||||||
pColAgg->min = colVal.value.i16;
|
pColAgg->min = colVal.value.i16;
|
||||||
|
@ -1441,7 +1421,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_FLOAT:{
|
case TSDB_DATA_TYPE_FLOAT: {
|
||||||
pColAgg->sum += colVal.value.f;
|
pColAgg->sum += colVal.value.f;
|
||||||
if (pColAgg->min > colVal.value.f) {
|
if (pColAgg->min > colVal.value.f) {
|
||||||
pColAgg->min = colVal.value.f;
|
pColAgg->min = colVal.value.f;
|
||||||
|
@ -1451,7 +1431,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_DOUBLE:{
|
case TSDB_DATA_TYPE_DOUBLE: {
|
||||||
pColAgg->sum += colVal.value.d;
|
pColAgg->sum += colVal.value.d;
|
||||||
if (pColAgg->min > colVal.value.d) {
|
if (pColAgg->min > colVal.value.d) {
|
||||||
pColAgg->min = colVal.value.d;
|
pColAgg->min = colVal.value.d;
|
||||||
|
@ -1463,7 +1443,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_VARCHAR:
|
case TSDB_DATA_TYPE_VARCHAR:
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_TIMESTAMP:{
|
case TSDB_DATA_TYPE_TIMESTAMP: {
|
||||||
if (pColAgg->min > colVal.value.i64) {
|
if (pColAgg->min > colVal.value.i64) {
|
||||||
pColAgg->min = colVal.value.i64;
|
pColAgg->min = colVal.value.i64;
|
||||||
}
|
}
|
||||||
|
@ -1474,7 +1454,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_NCHAR:
|
case TSDB_DATA_TYPE_NCHAR:
|
||||||
break;
|
break;
|
||||||
case TSDB_DATA_TYPE_UTINYINT:{
|
case TSDB_DATA_TYPE_UTINYINT: {
|
||||||
pColAgg->sum += colVal.value.u8;
|
pColAgg->sum += colVal.value.u8;
|
||||||
if (pColAgg->min > colVal.value.u8) {
|
if (pColAgg->min > colVal.value.u8) {
|
||||||
pColAgg->min = colVal.value.u8;
|
pColAgg->min = colVal.value.u8;
|
||||||
|
@ -1484,7 +1464,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_USMALLINT:{
|
case TSDB_DATA_TYPE_USMALLINT: {
|
||||||
pColAgg->sum += colVal.value.u16;
|
pColAgg->sum += colVal.value.u16;
|
||||||
if (pColAgg->min > colVal.value.u16) {
|
if (pColAgg->min > colVal.value.u16) {
|
||||||
pColAgg->min = colVal.value.u16;
|
pColAgg->min = colVal.value.u16;
|
||||||
|
@ -1494,7 +1474,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_UINT:{
|
case TSDB_DATA_TYPE_UINT: {
|
||||||
pColAgg->sum += colVal.value.u32;
|
pColAgg->sum += colVal.value.u32;
|
||||||
if (pColAgg->min > colVal.value.u32) {
|
if (pColAgg->min > colVal.value.u32) {
|
||||||
pColAgg->min = colVal.value.u32;
|
pColAgg->min = colVal.value.u32;
|
||||||
|
@ -1504,7 +1484,7 @@ void tsdbCalcColDataSMA(SColData *pColData, SColumnDataAgg *pColAgg) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_UBIGINT:{
|
case TSDB_DATA_TYPE_UBIGINT: {
|
||||||
pColAgg->sum += colVal.value.u64;
|
pColAgg->sum += colVal.value.u64;
|
||||||
if (pColAgg->min > colVal.value.u64) {
|
if (pColAgg->min > colVal.value.u64) {
|
||||||
pColAgg->min = colVal.value.u64;
|
pColAgg->min = colVal.value.u64;
|
||||||
|
|
Loading…
Reference in New Issue