From 2a2a4da196c3041764e813346b2072cabcd42538 Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Fri, 14 Jul 2023 00:15:38 +0100 Subject: [PATCH] Buffered read/writes in dht persistence --- crates/dht/src/persistence.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/dht/src/persistence.rs b/crates/dht/src/persistence.rs index 46c7535..affc981 100644 --- a/crates/dht/src/persistence.rs +++ b/crates/dht/src/persistence.rs @@ -2,6 +2,7 @@ use serde::{Deserialize, Serialize}; use std::fs::OpenOptions; +use std::io::{BufReader, BufWriter}; use std::net::SocketAddr; use std::path::{Path, PathBuf}; use std::time::Duration; @@ -30,12 +31,13 @@ pub struct PersistentDht { } fn dump_dht(dht: &Dht, filename: &Path, tempfile_name: &Path) -> anyhow::Result<()> { - let mut file = OpenOptions::new() + let file = OpenOptions::new() .truncate(true) .create(true) .write(true) .open(tempfile_name) .with_context(|| format!("error opening {tempfile_name:?}"))?; + let mut file = BufWriter::new(file); let addr = dht.listen_addr(); match dht @@ -76,7 +78,8 @@ impl PersistentDht { let de = match OpenOptions::new().read(true).open(&config_filename) { Ok(dht_json) => { - match serde_json::from_reader::<_, DhtSerialize>(&dht_json) { + let reader = BufReader::new(dht_json); + match serde_json::from_reader::<_, DhtSerialize>(reader) { Ok(r) => { info!("loaded DHT routing table from {:?}", &config_filename); Some(r)