diff options
| author | [email protected] <[email protected]> | 2021-08-25 18:40:20 +0800 |
|---|---|---|
| committer | [email protected] <[email protected]> | 2021-08-25 18:40:20 +0800 |
| commit | 1aca701f127e94a7fbf60a996328083fed665f56 (patch) | |
| tree | 699c72e52f5a4f0a4251d79c2d23df8bef8ea58d /include | |
| parent | 67bafbefc972158f9ddd4fb9e45dc76ff2c8a540 (diff) | |
增加HTTP Post上传配置接口,支持主从双机备份与同步(冷备)
Diffstat (limited to 'include')
| -rw-r--r-- | include/doris_client.h | 79 | ||||
| -rw-r--r-- | include/doris_consumer_client.h | 86 | ||||
| -rw-r--r-- | include/doris_producer_client.h | 80 |
3 files changed, 166 insertions, 79 deletions
diff --git a/include/doris_client.h b/include/doris_client.h deleted file mode 100644 index 08f3884..0000000 --- a/include/doris_client.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef __DORIS_CLIENT_H__ -#define __DORIS_CLIENT_H__ - -#include <event.h> -#include <cjson/cJSON.h> - -enum FSSTAT_DORIS_FILED_ITEMS -{ - DRS_FS_FILED_REQ_FAIL=0, - DRS_FS_FILED_REQ_META, - DRS_FS_FILED_RES_META, - DRS_FS_FILED_RES_NOMETA, - DRS_FS_FILED_REQ_FILES, - DRS_FS_FILED_RES_FILES, - DRS_FS_FILED_RES_FRAGS, - DRS_FS_FILED_RES_FRAGERR, - DRS_FS_FILED_RES_BYTES, - DRS_FS_FILED_RES_VERERR, - - DRS_FS_FILED_BACKUP1_REQ, - DRS_FS_FILED_BACKUP2_REQ, - - FSSTAT_DORIS_FILED_NUM, -}; - -enum FSSTAT_DORIS_STATUS_ITEMS -{ - DRS_FS_STAT_MST_CNN_SRV=0, - DRS_FS_STAT_MST_FAIL_SRV, - DRS_FS_STAT_BCK1_CNN_SRV, - DRS_FS_STAT_BCK1_FAIL_SRV, - DRS_FS_STAT_BCK2_CNN_SRV, - DRS_FS_STAT_BCK2_FAIL_SRV, - DRS_FS_STAT_MEMORY_USED, - DRS_FS_STAT_HTTP_SESSIONS, - - FSSTAT_DORIS_STATUS_NUM, -}; - -struct doris_statistics -{ - long long field[FSSTAT_DORIS_FILED_NUM]; - long long status[FSSTAT_DORIS_STATUS_NUM]; -}; - -struct doris_arguments -{ - char bizname[32]; - int64_t current_version; //��ǰ�ѻ�ȡ��ϵ����°汾�ţ���������һ���汾ȡ���� - int32_t judian_id; -}; - -struct tablemeta -{ - const char *tablename; //����������ʽmaat���䣻������ʽΪ�ļ��� - const char *filename; //���ʱҪ����ļ��� - const char *userregion; - size_t size; - u_int32_t cfgnum; -}; - -struct doris_instance; -struct doris_callbacks -{ - void *userdata; - void (*version_start)(struct doris_instance *instance, cJSON *meta, void *userdata); //meta�������汾���������ڶ���Ч - void (*cfgfile_start)(struct doris_instance *instance, const struct tablemeta *meta, const char *unused, void *userdata); - void (*cfgfile_update)(struct doris_instance *instance, const char *data, size_t len, void *userdata); - void (*cfgfile_finish)(struct doris_instance *instance, const char *md5, void *userdata); - void (*version_error)(struct doris_instance *instance, void *userdata); //�����ļ�ʧ�ܣ��ð汾��Ҫ�ع� - void (*version_finish)(struct doris_instance *instance, void *userdata); -}; - -struct doris_parameter *doris_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog); -struct doris_instance *doris_instance_new(struct doris_parameter *param, struct event_base *worker_evbase, - struct doris_callbacks *cbs, struct doris_arguments *args, void *runtimelog); - -#endif - diff --git a/include/doris_consumer_client.h b/include/doris_consumer_client.h new file mode 100644 index 0000000..f772626 --- /dev/null +++ b/include/doris_consumer_client.h @@ -0,0 +1,86 @@ +#ifndef __DORIS_CONSUMER_CLIENT_H__ +#define __DORIS_CONSUMER_CLIENT_H__ + +#include <event.h> +#include <cjson/cJSON.h> + +enum FSSTAT_DORIS_FILED_ITEMS +{ + DRS_FS_FILED_REQ_FAIL=0, + DRS_FS_FILED_REQ_META, + DRS_FS_FILED_RES_META, + DRS_FS_FILED_RES_NOMETA, + DRS_FS_FILED_REQ_FILES, + DRS_FS_FILED_RES_FILES, + DRS_FS_FILED_RES_FRAGS, + DRS_FS_FILED_RES_FRAGERR, + DRS_FS_FILED_RES_BYTES, + DRS_FS_FILED_RES_VERERR, + + DRS_FS_FILED_BACKUP1_REQ, + DRS_FS_FILED_BACKUP2_REQ, + + FSSTAT_DORIS_FILED_NUM, +}; + +enum FSSTAT_DORIS_STATUS_ITEMS +{ + DRS_FS_STAT_MST_CNN_SRV=0, + DRS_FS_STAT_MST_FAIL_SRV, + DRS_FS_STAT_BCK1_CNN_SRV, + DRS_FS_STAT_BCK1_FAIL_SRV, + DRS_FS_STAT_BCK2_CNN_SRV, + DRS_FS_STAT_BCK2_FAIL_SRV, + DRS_FS_STAT_MEMORY_USED, + DRS_FS_STAT_HTTP_SESSIONS, + + FSSTAT_DORIS_STATUS_NUM, +}; + +struct doris_csum_statistics +{ + long long field[FSSTAT_DORIS_FILED_NUM]; + long long status[FSSTAT_DORIS_STATUS_NUM]; +}; + +struct doris_arguments +{ + char bizname[32]; + int64_t current_version; //��ǰ�ѻ�ȡ��ϵ����°汾�ţ���������һ���汾ȡ���� + int32_t judian_id; +}; + +struct tablemeta +{ + const char *tablename; //����������ʽmaat���䣻������ʽΪ�ļ��� + const char *filename; //���ʱҪ����ļ��� + const char *userregion; + size_t size; + u_int32_t cfgnum; +}; + +struct doris_csum_param; +struct doris_csum_instance; +struct doris_callbacks +{ + void *userdata; + void (*version_start)(struct doris_csum_instance *instance, cJSON *meta, void *userdata); //meta�������汾���������ڶ���Ч + void (*cfgfile_start)(struct doris_csum_instance *instance, const struct tablemeta *meta, const char *unused, void *userdata); + void (*cfgfile_update)(struct doris_csum_instance *instance, const char *data, size_t len, void *userdata); + void (*cfgfile_finish)(struct doris_csum_instance *instance, const char *md5, void *userdata); + void (*version_error)(struct doris_csum_instance *instance, void *userdata); //�����ļ�ʧ�ܣ��ð汾��Ҫ�ع� + void (*version_finish)(struct doris_csum_instance *instance, void *userdata); + void (*version_updated)(struct doris_csum_instance *instance, void *userdata); //��ʱû�������� +}; + +struct doris_csum_param *doris_csum_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog); +void doris_csum_parameter_destroy(struct doris_csum_param *param); +u_int32_t doris_csum_param_get_refernces(struct doris_csum_param *param); + +struct doris_csum_instance *doris_csum_instance_new(struct doris_csum_param *param, struct event_base *worker_evbase, + struct doris_callbacks *cbs, struct doris_arguments *args, void *runtimelog); +struct doris_csum_param *doris_csum_instance_get_param(struct doris_csum_instance *instance); +void doris_csum_instance_destroy(struct doris_csum_instance *instance); + +#endif + diff --git a/include/doris_producer_client.h b/include/doris_producer_client.h new file mode 100644 index 0000000..877f7a3 --- /dev/null +++ b/include/doris_producer_client.h @@ -0,0 +1,80 @@ +#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 + |
