Merge pull request #23844 from taosdata/FIX/TS-4306-3.0
enh: limit size of snap replication msg by data length
This commit is contained in:
commit
041add545c
|
@ -305,7 +305,7 @@ typedef enum ELogicConditionType {
|
|||
#define TSDB_SYNC_APPLYQ_SIZE_LIMIT 512
|
||||
#define TSDB_SYNC_NEGOTIATION_WIN 512
|
||||
|
||||
#define TSDB_SYNC_SNAP_BUFFER_SIZE 2048
|
||||
#define TSDB_SYNC_SNAP_BUFFER_SIZE 1024
|
||||
|
||||
#define TSDB_TBNAME_COLUMN_INDEX (-1)
|
||||
#define TSDB_MULTI_TABLEMETA_MAX_NUM 100000 // maximum batch size allowed to load table meta
|
||||
|
|
|
@ -278,6 +278,15 @@ _exit:
|
|||
return code;
|
||||
}
|
||||
|
||||
static int64_t tBlockDataSize(SBlockData* pBlockData) {
|
||||
int64_t nData = 0;
|
||||
for (int32_t iCol = 0; iCol < pBlockData->nColData; iCol++) {
|
||||
SColData* pColData = tBlockDataGetColDataByIdx(pBlockData, iCol);
|
||||
nData += pColData->nData;
|
||||
}
|
||||
return nData;
|
||||
}
|
||||
|
||||
static int32_t tsdbSnapReadTimeSeriesData(STsdbSnapReader* reader, uint8_t** data) {
|
||||
int32_t code = 0;
|
||||
int32_t lino = 0;
|
||||
|
@ -320,8 +329,11 @@ static int32_t tsdbSnapReadTimeSeriesData(STsdbSnapReader* reader, uint8_t** dat
|
|||
code = tsdbIterMergerNext(reader->dataIterMerger);
|
||||
TSDB_CHECK_CODE(code, lino, _exit);
|
||||
|
||||
if (reader->blockData->nRow >= 81920) {
|
||||
break;
|
||||
if (!(reader->blockData->nRow % 16)) {
|
||||
int64_t nData = tBlockDataSize(reader->blockData);
|
||||
if (nData >= 1 * 1024 * 1024) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue