diff options
author | Vladislavs Sokurenko <vladislavs.sokurenko@zabbix.com> | 2022-11-03 19:23:22 +0300 |
---|---|---|
committer | Vladislavs Sokurenko <vladislavs.sokurenko@zabbix.com> | 2022-11-03 19:23:22 +0300 |
commit | 5604a808586036b0c131f93328510811d65bfc65 (patch) | |
tree | 71034f2b968bd78d9c4b569081f5b7b1d8776534 | |
parent | d22d8775865eb5392014d592e09ccc3f0ac4b30c (diff) |
........S. [ZBX-21825] improved history syncer performance
-rw-r--r-- | src/libs/zbxdbcache/dbcache.c | 2 | ||||
-rw-r--r-- | src/libs/zbxdbhigh/proxy.c | 8 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/libs/zbxdbcache/dbcache.c b/src/libs/zbxdbcache/dbcache.c index 1bbafab1c56..0ad704abbee 100644 --- a/src/libs/zbxdbcache/dbcache.c +++ b/src/libs/zbxdbcache/dbcache.c @@ -2986,7 +2986,7 @@ static void sync_server_history(int *values_num, int *triggers_num, int *more) items = (DC_ITEM *)zbx_calloc(NULL, 1, sizeof(DC_ITEM) * (size_t)ZBX_HC_SYNC_MAX); if (NULL == errcodes) - errcodes = (int *)zbx_calloc(NULL, 1, sizeof(int) * (size_t)ZBX_HC_SYNC_MAX); + errcodes = (int *)zbx_malloc(NULL, sizeof(int) * (size_t)ZBX_HC_SYNC_MAX); zbx_vector_uint64_reserve(&itemids, history_num); diff --git a/src/libs/zbxdbhigh/proxy.c b/src/libs/zbxdbhigh/proxy.c index 4b1e5ec9703..0738a8191ab 100644 --- a/src/libs/zbxdbhigh/proxy.c +++ b/src/libs/zbxdbhigh/proxy.c @@ -3466,9 +3466,10 @@ static int process_history_data_by_itemids(zbx_socket_t *sock, zbx_client_item_v zbx_proxy_suppress_t *nodata_win, char **info, unsigned int mode) { const char *pnext = NULL; - int ret = SUCCEED, processed_num = 0, total_num = 0, values_num, read_num, i, *errcodes; + int ret = SUCCEED, processed_num = 0, total_num = 0, values_num, read_num, i, + errcodes[ZBX_HISTORY_VALUES_MAX]; double sec; - DC_ITEM *items; + DC_ITEM items[ZBX_HISTORY_VALUES_MAX] = {0}; char *error = NULL; zbx_uint64_t itemids[ZBX_HISTORY_VALUES_MAX], last_valueid = 0; zbx_agent_value_t values[ZBX_HISTORY_VALUES_MAX]; @@ -3476,9 +3477,6 @@ static int process_history_data_by_itemids(zbx_socket_t *sock, zbx_client_item_v zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __func__); - items = (DC_ITEM *)zbx_calloc(NULL, 1, sizeof(DC_ITEM) * ZBX_HISTORY_VALUES_MAX); - errcodes = (int *)zbx_calloc(NULL, 1, sizeof(int) * ZBX_HISTORY_VALUES_MAX); - sec = zbx_time(); while (SUCCEED == parse_history_data_by_itemids(jp_data, &pnext, values, itemids, &values_num, &read_num, |