enh: batch create table

This commit is contained in:
kailixu 2024-04-28 10:24:16 +08:00
parent 53e9e0b3af
commit e392b39323
1 changed files with 16 additions and 10 deletions

View File

@ -61,9 +61,9 @@ static void *dmNotifyThreadFp(void *param) {
// calculate approximate timeSeries per second // calculate approximate timeSeries per second
int64_t notifyTimeStamp[TIMESERIES_STASH_NUM]; int64_t notifyTimeStamp[TIMESERIES_STASH_NUM];
int64_t notifyTimeSeries[TIMESERIES_STASH_NUM]; int64_t notifyTimeSeries[TIMESERIES_STASH_NUM];
int64_t approximateTimeSeries = 0;
uint64_t nTotalNotify = 0; uint64_t nTotalNotify = 0;
int32_t head = -1; int32_t head, tail = 0;
int32_t tail = 0;
bool wait = true; bool wait = true;
int32_t nDnode = 0; int32_t nDnode = 0;
@ -81,6 +81,7 @@ static void *dmNotifyThreadFp(void *param) {
int64_t current = taosGetTimestampMs(); int64_t current = taosGetTimestampMs();
if (current - lastNotify > 1000) { if (current - lastNotify > 1000) {
nDnode = dmGetDnodeSize(pMgmt->pData); nDnode = dmGetDnodeSize(pMgmt->pData);
if (nDnode < 1) nDnode = 1;
} }
if (req.dnodeId == 0 || req.clusterId == 0) { if (req.dnodeId == 0 || req.clusterId == 0) {
req.dnodeId = pMgmt->pData->dnodeId; req.dnodeId = pMgmt->pData->dnodeId;
@ -88,9 +89,11 @@ static void *dmNotifyThreadFp(void *param) {
} }
if (current - lastNotify < 10) { if (current - lastNotify < 10) {
if (remainTimeSeries > 1000000) { int64_t nCmprTimeSeries = approximateTimeSeries / 100;
if (nCmprTimeSeries < 1e5) nCmprTimeSeries = 1e5;
if (remainTimeSeries > nCmprTimeSeries * 10) {
taosMsleep(10); taosMsleep(10);
} else if (remainTimeSeries > 500000) { } else if (remainTimeSeries > nCmprTimeSeries * 5) {
taosMsleep(5); taosMsleep(5);
} else { } else {
taosMsleep(2); taosMsleep(2);
@ -110,20 +113,23 @@ static void *dmNotifyThreadFp(void *param) {
notifyTimeStamp[tail] = taosGetTimestampNs(); notifyTimeStamp[tail] = taosGetTimestampNs();
++nTotalNotify; ++nTotalNotify;
int64_t approximateTimeSeries = 0; approximateTimeSeries = 0;
if (nTotalNotify >= TIMESERIES_STASH_NUM) { if (nTotalNotify >= TIMESERIES_STASH_NUM) {
head = tail - TIMESERIES_STASH_NUM + 1;
if (head < 0) head += TIMESERIES_STASH_NUM;
int64_t timeDiff = notifyTimeStamp[tail] - notifyTimeStamp[head]; int64_t timeDiff = notifyTimeStamp[tail] - notifyTimeStamp[head];
int64_t tsDiff = notifyTimeSeries[tail] - notifyTimeSeries[head]; int64_t tsDiff = notifyTimeSeries[tail] - notifyTimeSeries[head];
if (timeDiff > 0 && timeDiff < 1e9 && tsDiff > 0) { if (timeDiff > 0 && timeDiff < 1e9 && tsDiff > 0) {
approximateTimeSeries = (double)tsDiff * 1e9 / timeDiff; approximateTimeSeries = (double)tsDiff * 1e9 / timeDiff;
if ((approximateTimeSeries * nDnode) > remainTimeSeries) {
dmSendNotifyReq(pMgmt, &req);
}
} }
} } else {
if (++head == TIMESERIES_STASH_NUM) head = 0;
if (++tail == TIMESERIES_STASH_NUM) tail = 0;
if ((approximateTimeSeries * nDnode) > remainTimeSeries) {
dmSendNotifyReq(pMgmt, &req); dmSendNotifyReq(pMgmt, &req);
} }
if (++tail == TIMESERIES_STASH_NUM) tail = 0;
tFreeSNotifyReq(&req); tFreeSNotifyReq(&req);
lastNotify = taosGetTimestampMs(); lastNotify = taosGetTimestampMs();
_skip: _skip: