checkpoint
This commit is contained in:
@@ -22,7 +22,7 @@ pub struct RecordStore {
|
||||
dead_records: Vec<(RecordTableKey, Record)>,
|
||||
changed_records: HashSet<RecordTableKey>,
|
||||
|
||||
purge_dead_records_mutex: AsyncMutex<()>,
|
||||
purge_dead_records_mutex: Arc<AsyncMutex<()>>,
|
||||
}
|
||||
|
||||
impl RecordStore {
|
||||
@@ -40,7 +40,7 @@ impl RecordStore {
|
||||
total_storage_space: 0,
|
||||
dead_records: Vec::new(),
|
||||
changed_records: HashSet::new(),
|
||||
purge_dead_records_mutex: AsyncMutex::new(()),
|
||||
purge_dead_records_mutex: Arc::new(AsyncMutex::new(())),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ impl RecordStore {
|
||||
dead_records.push((k, v));
|
||||
}) {
|
||||
// This shouldn't happen, but deduplicate anyway
|
||||
log_stor!(warn "duplicate record in table: {}", ri.0);
|
||||
log_stor!(warn "duplicate record in table: {:?}", ri.0);
|
||||
dead_records.push((ri.0, v));
|
||||
}
|
||||
}
|
||||
@@ -132,8 +132,9 @@ impl RecordStore {
|
||||
}
|
||||
|
||||
async fn purge_dead_records(&mut self, lazy: bool) {
|
||||
let purge_dead_records_mutex = self.purge_dead_records_mutex.clone();
|
||||
let lock = if lazy {
|
||||
match self.purge_dead_records_mutex.try_lock().await {
|
||||
match purge_dead_records_mutex.try_lock() {
|
||||
Ok(v) => v,
|
||||
Err(_) => {
|
||||
// If not ready now, just skip it if we're lazy
|
||||
@@ -142,7 +143,7 @@ impl RecordStore {
|
||||
}
|
||||
} else {
|
||||
// Not lazy, must wait
|
||||
self.purge_dead_records_mutex.lock().await;
|
||||
purge_dead_records_mutex.lock().await
|
||||
};
|
||||
|
||||
// Delete dead keys
|
||||
@@ -251,7 +252,7 @@ impl RecordStore {
|
||||
dead_records.push((k, v));
|
||||
}) {
|
||||
// Shouldn't happen but log it
|
||||
log_stor!(warn "new duplicate record in table: {}", rtk);
|
||||
log_stor!(warn "new duplicate record in table: {:?}", rtk);
|
||||
self.add_dead_record(rtk, v);
|
||||
}
|
||||
for dr in dead_records {
|
||||
|
@@ -211,10 +211,10 @@ fn config_callback(key: String) -> ConfigCallbackReturn {
|
||||
"network.dht.resolve_node_count" => Ok(Box::new(20u32)),
|
||||
"network.dht.resolve_node_fanout" => Ok(Box::new(3u32)),
|
||||
"network.dht.max_find_node_count" => Ok(Box::new(20u32)),
|
||||
"network.dht.get_value_timeout_ms" => Ok(Box::new(Option::<u32>::None)),
|
||||
"network.dht.get_value_timeout_ms" => Ok(Box::new(10u32)),
|
||||
"network.dht.get_value_count" => Ok(Box::new(20u32)),
|
||||
"network.dht.get_value_fanout" => Ok(Box::new(3u32)),
|
||||
"network.dht.set_value_timeout_ms" => Ok(Box::new(Option::<u32>::None)),
|
||||
"network.dht.set_value_timeout_ms" => Ok(Box::new(10u32)),
|
||||
"network.dht.set_value_count" => Ok(Box::new(20u32)),
|
||||
"network.dht.set_value_fanout" => Ok(Box::new(5u32)),
|
||||
"network.dht.min_peer_count" => Ok(Box::new(20u32)),
|
||||
@@ -317,7 +317,7 @@ pub async fn test_config() {
|
||||
assert_eq!(inner.network.hole_punch_receipt_time_ms, 5_000u32);
|
||||
assert_eq!(inner.network.rpc.concurrency, 2u32);
|
||||
assert_eq!(inner.network.rpc.queue_size, 1024u32);
|
||||
assert_eq!(inner.network.rpc.timeout_ms, 10_000u32);
|
||||
assert_eq!(inner.network.rpc.timeout_ms, 5_000u32);
|
||||
assert_eq!(inner.network.rpc.max_route_hop_count, 4u8);
|
||||
assert_eq!(inner.network.rpc.default_route_hop_count, 1u8);
|
||||
assert_eq!(inner.network.routing_table.node_id.len(), 0);
|
||||
@@ -329,16 +329,13 @@ pub async fn test_config() {
|
||||
assert_eq!(inner.network.routing_table.limit_attached_good, 8u32);
|
||||
assert_eq!(inner.network.routing_table.limit_attached_weak, 4u32);
|
||||
|
||||
assert_eq!(
|
||||
inner.network.dht.resolve_node_timeout_ms,
|
||||
Option::<u32>::None
|
||||
);
|
||||
assert_eq!(inner.network.dht.resolve_node_timeout_ms, 10_000u32);
|
||||
assert_eq!(inner.network.dht.resolve_node_count, 20u32);
|
||||
assert_eq!(inner.network.dht.resolve_node_fanout, 3u32);
|
||||
assert_eq!(inner.network.dht.get_value_timeout_ms, Option::<u32>::None);
|
||||
assert_eq!(inner.network.dht.get_value_timeout_ms, 10_000u32);
|
||||
assert_eq!(inner.network.dht.get_value_count, 20u32);
|
||||
assert_eq!(inner.network.dht.get_value_fanout, 3u32);
|
||||
assert_eq!(inner.network.dht.set_value_timeout_ms, Option::<u32>::None);
|
||||
assert_eq!(inner.network.dht.set_value_timeout_ms, 10_000u32);
|
||||
assert_eq!(inner.network.dht.set_value_count, 20u32);
|
||||
assert_eq!(inner.network.dht.set_value_fanout, 5u32);
|
||||
assert_eq!(inner.network.dht.min_peer_count, 20u32);
|
||||
|
@@ -2557,7 +2557,7 @@ impl DHTSchemaSMPL {
|
||||
|
||||
/// Get the data size of this schema beyond the size of the structure itself
|
||||
pub fn data_size(&self) -> usize {
|
||||
self.members.len() * mem::size_of::<DHTSchemaSMPLMember>
|
||||
self.members.len() * mem::size_of::<DHTSchemaSMPLMember>()
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user