enh: extract bufer size of all child tables
This commit is contained in:
parent
80ecd4feb4
commit
3627a54c13
|
@ -26,11 +26,16 @@ typedef enum {
|
||||||
CSV_NAMING_B_THREAD_TIME_SLICE
|
CSV_NAMING_B_THREAD_TIME_SLICE
|
||||||
} CsvNamingType;
|
} CsvNamingType;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char* buf;
|
||||||
|
int length;
|
||||||
|
} CsvRowTagsBuf;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char* buf;
|
char* buf;
|
||||||
int buf_size;
|
int buf_size;
|
||||||
int length;
|
int length;
|
||||||
} CsvRowFieldsBuf;
|
} CsvRowColsBuf;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
CsvNamingType naming_type;
|
CsvNamingType naming_type;
|
||||||
|
@ -52,8 +57,9 @@ typedef struct {
|
||||||
time_t end_secs;
|
time_t end_secs;
|
||||||
size_t thread_id;
|
size_t thread_id;
|
||||||
bool output_header;
|
bool output_header;
|
||||||
CsvRowFieldsBuf* tags_buf_bucket;
|
int tags_buf_size;
|
||||||
CsvRowFieldsBuf* cols_buf;
|
CsvRowTagsBuf* tags_buf_bucket;
|
||||||
|
CsvRowColsBuf* cols_buf;
|
||||||
} CsvThreadMeta;
|
} CsvThreadMeta;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -366,7 +366,7 @@ static int csvGenRowColData(char* buf, int size, SSuperTable* stb, int64_t ts, i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static CsvRowFieldsBuf* csvGenCtbTagData(CsvWriteMeta* write_meta, CsvThreadMeta* thread_meta) {
|
static CsvRowTagsBuf* csvGenCtbTagData(CsvWriteMeta* write_meta, CsvThreadMeta* thread_meta) {
|
||||||
SSuperTable* stb = write_meta->stb;
|
SSuperTable* stb = write_meta->stb;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int64_t tk = 0;
|
int64_t tk = 0;
|
||||||
|
@ -375,7 +375,7 @@ static CsvRowFieldsBuf* csvGenCtbTagData(CsvWriteMeta* write_meta, CsvThreadMeta
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CsvRowFieldsBuf* tags_buf_bucket = (CsvRowFieldsBuf*)benchCalloc(thread_meta->ctb_count, sizeof(CsvRowFieldsBuf), true);
|
CsvRowTagsBuf* tags_buf_bucket = (CsvRowTagsBuf*)benchCalloc(thread_meta->ctb_count, sizeof(CsvRowTagsBuf), true);
|
||||||
if (!tags_buf_bucket) {
|
if (!tags_buf_bucket) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -388,8 +388,8 @@ static CsvRowFieldsBuf* csvGenCtbTagData(CsvWriteMeta* write_meta, CsvThreadMeta
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
tags_buf_bucket[i].buf = tags_buf;
|
tags_buf_bucket[i].buf = tags_buf;
|
||||||
tags_buf_bucket[i].buf_size = tags_buf_size;
|
write_meta->tags_buf_size = tags_buf_size;
|
||||||
|
|
||||||
ret = csvGenRowTagData(tags_buf, tags_buf_size, stb, thread_meta->ctb_start_idx + i, &tk);
|
ret = csvGenRowTagData(tags_buf, tags_buf_size, stb, thread_meta->ctb_start_idx + i, &tk);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
|
@ -407,7 +407,7 @@ error:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void csvFreeCtbTagData(CsvThreadMeta* thread_meta, CsvRowFieldsBuf* tags_buf_bucket) {
|
static void csvFreeCtbTagData(CsvThreadMeta* thread_meta, CsvRowTagsBuf* tags_buf_bucket) {
|
||||||
if (!thread_meta || !tags_buf_bucket) {
|
if (!thread_meta || !tags_buf_bucket) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -428,9 +428,9 @@ static void csvFreeCtbTagData(CsvThreadMeta* thread_meta, CsvRowFieldsBuf* tags_
|
||||||
static int csvWriteFile(FILE* fp, uint64_t ctb_idx, int64_t cur_ts, int64_t* ck, CsvWriteMeta* write_meta, CsvThreadMeta* thread_meta) {
|
static int csvWriteFile(FILE* fp, uint64_t ctb_idx, int64_t cur_ts, int64_t* ck, CsvWriteMeta* write_meta, CsvThreadMeta* thread_meta) {
|
||||||
SDataBase* db = write_meta->db;
|
SDataBase* db = write_meta->db;
|
||||||
SSuperTable* stb = write_meta->stb;
|
SSuperTable* stb = write_meta->stb;
|
||||||
CsvRowFieldsBuf* tags_buf_bucket = thread_meta->tags_buf_bucket;
|
CsvRowTagsBuf* tags_buf_bucket = thread_meta->tags_buf_bucket;
|
||||||
CsvRowFieldsBuf* tags_buf = &tags_buf_bucket[ctb_idx];
|
CsvRowColsBuf* tags_buf = &tags_buf_bucket[ctb_idx];
|
||||||
CsvRowFieldsBuf* cols_buf = thread_meta->cols_buf;
|
CsvRowColsBuf* cols_buf = thread_meta->cols_buf;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
|
||||||
|
@ -493,7 +493,7 @@ static void* csvGenStbThread(void* arg) {
|
||||||
|
|
||||||
|
|
||||||
// tags buffer
|
// tags buffer
|
||||||
CsvRowFieldsBuf* tags_buf_bucket = csvGenCtbTagData(write_meta, thread_meta);
|
CsvRowTagsBuf* tags_buf_bucket = csvGenCtbTagData(write_meta, thread_meta);
|
||||||
if (!tags_buf_bucket) {
|
if (!tags_buf_bucket) {
|
||||||
errorPrint("Failed to generate csv tag data. database: %s, super table: %s, naming type: %d, thread index: %d.\n",
|
errorPrint("Failed to generate csv tag data. database: %s, super table: %s, naming type: %d, thread index: %d.\n",
|
||||||
db->dbName, stb->stbName, write_meta.naming_type, thread_meta->thread_id);
|
db->dbName, stb->stbName, write_meta.naming_type, thread_meta->thread_id);
|
||||||
|
@ -509,7 +509,7 @@ static void* csvGenStbThread(void* arg) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
CsvRowFieldsBuf cols_buf = {
|
CsvRowColsBuf cols_buf = {
|
||||||
.buf = buf,
|
.buf = buf,
|
||||||
.buf_size = buf_size,
|
.buf_size = buf_size,
|
||||||
.length = 0
|
.length = 0
|
||||||
|
|
Loading…
Reference in New Issue