udp: improve resend buffer logic and log messages

This commit is contained in:
Joakim Frostegård 2022-07-03 22:24:58 +02:00
parent ae77c7426e
commit ff071080b0
3 changed files with 68 additions and 106 deletions

View file

@ -23,8 +23,6 @@ use requests::read_requests;
use responses::send_responses;
use storage::PendingScrapeResponseSlab;
use self::responses::send_responses_with_resends;
pub fn run_socket_worker(
_sentinel: PanicSentinel,
state: State,
@ -52,7 +50,7 @@ pub fn run_socket_worker(
let mut access_list_cache = create_access_list_cache(&state.access_list);
let mut local_responses: Vec<(Response, CanonicalSocketAddr)> = Vec::new();
let mut resend_buffer: Vec<(Response, CanonicalSocketAddr)> = Vec::new();
let mut opt_resend_buffer = (config.network.resend_buffer_max_len > 0).then_some(Vec::new());
let poll_timeout = Duration::from_millis(config.network.poll_timeout_ms);
@ -63,7 +61,6 @@ pub fn run_socket_worker(
let mut last_pending_scrape_cleaning = Instant::now();
let mut iter_counter = 0usize;
let response_resending_active = config.network.resend_buffer_max_len > 0;
loop {
poll.poll(&mut events, Some(poll_timeout))
@ -88,28 +85,16 @@ pub fn run_socket_worker(
}
}
if response_resending_active {
send_responses_with_resends(
&state,
&config,
&mut socket,
&mut buffer,
&response_receiver,
&mut pending_scrape_responses,
local_responses.drain(..),
&mut resend_buffer,
);
} else {
send_responses(
&state,
&config,
&mut socket,
&mut buffer,
&response_receiver,
&mut pending_scrape_responses,
local_responses.drain(..),
);
}
send_responses(
&state,
&config,
&mut socket,
&mut buffer,
&response_receiver,
&mut pending_scrape_responses,
local_responses.drain(..),
&mut opt_resend_buffer,
);
// Run periodic ValidUntil updates and state cleaning
if iter_counter % 256 == 0 {