@cryptotaxi247 / netdata-1 / commits / 026a87514

Replace write with read locks (#12309)

Emmanuel Vasilakis committed Mar 10, 2022 at 15:29 UTC 026a875146fccfa79cf5a72f692693feef7e708e
5 files changed +11 -11
database/sqlite/sqlite_aclk.c
+3 -3
@@ -209,7 +209,7 @@ struct aclk_database_worker_config *find_inactive_wc_by_node_id(char *node_id)
209
210 void aclk_sync_exit_all()
211 {
212 - rrd_wrlock();
212 + rrd_rdlock();
213 RRDHOST *host = localhost;
214 while(host) {
215 struct aclk_database_worker_config *wc = host->dbsync_worker;
@@ -572,7 +572,7 @@ void aclk_database_worker(void *arg)
572
573 freez(loop);
574
575 - rrd_wrlock();
575 + rrd_rdlock();
576 if (likely(wc->host))
577 wc->host->dbsync_worker = NULL;
578 freez(wc);
@@ -820,7 +820,7 @@ void aclk_data_rotated(void)
820 return;
821
822 time_t next_rotation_time = now_realtime_sec()+ACLK_DATABASE_ROTATION_DELAY;
823 - rrd_wrlock();
823 + rrd_rdlock();
824 RRDHOST *this_host = localhost;
825 while (this_host) {
826 struct aclk_database_worker_config *wc = this_host->dbsync_worker;
database/sqlite/sqlite_aclk_alert.c
+4 -4
@@ -297,7 +297,7 @@ void aclk_send_alarm_health_log(char *node_id)
297 memset(&cmd, 0, sizeof(cmd));
298 cmd.opcode = ACLK_DATABASE_ALARM_HEALTH_LOG;
299
300 - rrd_wrlock();
300 + rrd_rdlock();
301 RRDHOST *host = find_host_by_node_id(node_id);
302 if (likely(host))
303 wc = (struct aclk_database_worker_config *)host->dbsync_worker;
@@ -325,7 +325,7 @@ void aclk_push_alarm_health_log(struct aclk_database_worker_config *wc, struct a
325
326 RRDHOST *host = wc->host;
327 if (unlikely(!host)) {
328 - rrd_wrlock();
328 + rrd_rdlock();
329 host = find_host_by_node_id(wc->node_id);
330 rrd_unlock();
331
@@ -561,7 +561,7 @@ void aclk_start_alert_streaming(char *node_id, uint64_t batch_id, uint64_t start
561 return;
562
563 struct aclk_database_worker_config *wc = NULL;
564 - rrd_wrlock();
564 + rrd_rdlock();
565 RRDHOST *host = find_host_by_node_id(node_id);
566 if (likely(host))
567 wc = (struct aclk_database_worker_config *)host->dbsync_worker ?
@@ -646,7 +646,7 @@ void aclk_process_send_alarm_snapshot(char *node_id, char *claim_id, uint64_t sn
646 return;
647
648 struct aclk_database_worker_config *wc = NULL;
649 - rrd_wrlock();
649 + rrd_rdlock();
650 RRDHOST *host = find_host_by_node_id(node_id);
651 if (likely(host))
652 wc = (struct aclk_database_worker_config *)host->dbsync_worker;
database/sqlite/sqlite_aclk_chart.c
+2 -2
@@ -625,7 +625,7 @@ static void aclk_submit_param_command(char *node_id, enum aclk_database_opcode a
625 cmd.opcode = aclk_command;
626 cmd.param1 = param;
627
628 - rrd_wrlock();
628 + rrd_rdlock();
629 RRDHOST *host = find_host_by_node_id(node_id);
630 if (likely(host))
631 wc = (struct aclk_database_worker_config *)host->dbsync_worker;
@@ -664,7 +664,7 @@ void aclk_start_streaming(char *node_id, uint64_t sequence_id, time_t created_at
664 return;
665
666 struct aclk_database_worker_config *wc = NULL;
667 - rrd_wrlock();
667 + rrd_rdlock();
668 RRDHOST *host = localhost;
669 while(host) {
670 if (host->node_id && !(uuid_compare(*host->node_id, node_uuid))) {
database/sqlite/sqlite_aclk_node.c
+1 -1
@@ -17,7 +17,7 @@ void sql_build_node_info(struct aclk_database_worker_config *wc, struct aclk_dat
17 if (!wc->host)
18 return;
19
20 - rrd_wrlock();
20 + rrd_rdlock();
21 node_info.node_id = wc->node_id;
22 node_info.claim_id = is_agent_claimed();
23 node_info.machine_guid = wc->host_guid;
database/sqlite/sqlite_functions.c
+1 -1
@@ -2031,7 +2031,7 @@ struct node_instance_list *get_node_list(void)
2031 node_list = callocz(row + 1, sizeof(*node_list));
2032 int max_rows = row;
2033 row = 0;
2034 - rrd_wrlock();
2034 + rrd_rdlock();
2035 while (sqlite3_step(res) == SQLITE_ROW) {
2036 if (sqlite3_column_bytes(res, 0) == sizeof(uuid_t))
2037 uuid_copy(node_list[row].node_id, *((uuid_t *)sqlite3_column_blob(res, 0)));