This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
doris-doris-dispatch/include/doris_producer_client.h

81 lines
2.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __DORIS_PRODUCER_CLIENT_H__
#define __DORIS_PRODUCER_CLIENT_H__
enum FSSTAT_DRS_PROD_FILED_ITEMS
{
DRS_FSPRD_FILED_VERSTART=0,
DRS_FSPRD_FILED_VEREND,
DRS_FSPRD_FILED_VERCANCEL,
DRS_FSPRD_FILED_FILEFRAG,
DRS_FSPRD_FILED_FILEONCE,
FSSTAT_DORIS_PRD_FILED_NUM,
};
enum FSSTAT_DRS_PROD_STATUS_ITEMS
{
DRS_FSPRD_STAT_CNNED_SERVERS=0,
DRS_FSPRD_STAT_FAILED_SERVERS,
DRS_FSPRD_STAT_MEMORY_USED,
DRS_FSPRD_STAT_HTTP_SESSIONS,
DRS_FSPRD_STAT_REQ_SESSIONS,
FSSTAT_DORIS_PRD_STATUS_NUM,
};
struct doris_prod_statistics
{
long long field[FSSTAT_DORIS_PRD_FILED_NUM];
long long status[FSSTAT_DORIS_PRD_STATUS_NUM];
};
struct doris_prod_param;
struct doris_prod_instance;
struct doris_upload_ctx;
struct doris_prod_param *doris_prod_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog);
struct doris_prod_instance *doris_prod_instance_new(struct doris_prod_param *param, struct event_base *worker_evbase, void *runtimelog);
enum PROD_VERSTART_RES
{
VERSTART_RES_OK=0,
VERSTART_RES_BUSY, //响应码300代表server有已完成start的在途版本
VERSTART_RES_ERROR, //取得了响应但是响应码400要么非法请求要么有未完成start的版本
VERSTART_CURL_ERROR, //curl原因未正常取得响应
};
/*cfgtype: 1-全量2-增量*/
struct doris_upload_ctx *doris_prod_upload_ctx_new(struct doris_prod_instance *instance,const char *business, int32_t cfgtype);
void doris_prod_upload_ctx_destroy(struct doris_upload_ctx *ctx);
int32_t doris_prod_version_start(struct doris_upload_ctx *ctx);
int32_t doris_prod_version_start_with_cb(struct doris_upload_ctx *ctx,
void (*verstart_cb)(enum PROD_VERSTART_RES result, const char *body, void *userdata), void *userdata);
enum PROD_VEROP_RES
{
VERSIONOP_RES_OK=0,
VERSIONOP_RES_ERROR,
VERSIONOP_CURL_ERROR,
};
struct table_meta
{
const char *tablename; //表名行列式maat适配非行列式为文件名
const char *filename; //落地时要求的文件名
const char *userregion;
const char *md5;
u_int32_t cfgnum;
};
int32_t doris_prod_upload_once_with_cb(struct doris_upload_ctx *ctx, char *data, size_t size,
struct table_meta *meta, void (*upfrag_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
int32_t doris_prod_upload_frag_with_cb(struct doris_upload_ctx *ctx, char *data, size_t size, size_t offset,
bool last, struct table_meta *meta, void (*upfrag_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
int32_t doris_prod_version_end(struct doris_upload_ctx *ctx, void (*verend_cb)(enum PROD_VEROP_RES result, int64_t version, void *userdata), void *userdata);
int32_t doris_prod_version_cancel(struct doris_upload_ctx *ctx, void (*vercancel_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
#endif