Skip to content

Commit bc4cd57

Browse files
committed
(feat/malloc_size_of): refactor slightly
1 parent 7347bc1 commit bc4cd57

File tree

5 files changed

+38
-48
lines changed

5 files changed

+38
-48
lines changed

node/src/rpc/mod.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -467,23 +467,8 @@ pub struct RpcNodeStatus {
467467
#[derive(Serialize, Debug, Clone)]
468468
pub struct RpcNodeStatusResources {
469469
pub p2p_malloc_size: usize,
470-
pub transition_frontier: RpcNodeStatusResourcesTransitionFrontier,
471-
pub snark_pool: RpcNodeStatusResourcesSnarkPool,
472-
}
473-
474-
#[derive(Serialize, Debug, Clone)]
475-
pub struct RpcNodeStatusResourcesTransitionFrontier {
476-
pub best_chain_size: usize,
477-
pub needed_protocol_states_size: usize,
478-
pub blacklist_size: usize,
479-
pub diff_tx_size: usize,
480-
}
481-
482-
#[derive(Serialize, Debug, Clone)]
483-
pub struct RpcNodeStatusResourcesSnarkPool {
484-
pub pool_size: usize,
485-
pub candidates_size: usize,
486-
pub candidates_inconsistency: BTreeSet<(PeerId, SnarkJobId)>,
470+
pub transition_frontier: serde_json::Value,
471+
pub snark_pool: serde_json::Value,
487472
}
488473

489474
#[derive(Serialize, Debug, Clone)]

node/src/rpc_effectful/rpc_effectful_effects.rs

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@ use crate::{
1414
AccountQuery, AccountSlim, ActionStatsQuery, ActionStatsResponse, CurrentMessageProgress,
1515
MessagesStats, NodeHeartbeat, RootLedgerSyncProgress, RootStagedLedgerSyncProgress,
1616
RpcAction, RpcBlockProducerStats, RpcMessageProgressResponse, RpcNodeStatus,
17-
RpcNodeStatusResources, RpcNodeStatusResourcesSnarkPool,
18-
RpcNodeStatusResourcesTransitionFrontier, RpcNodeStatusTransactionPool,
19-
RpcNodeStatusTransitionFrontier, RpcNodeStatusTransitionFrontierBlockSummary,
20-
RpcNodeStatusTransitionFrontierSync, RpcRequestExtraData, RpcScanStateSummary,
21-
RpcScanStateSummaryBlock, RpcScanStateSummaryBlockTransaction,
22-
RpcScanStateSummaryBlockTransactionKind, RpcScanStateSummaryScanStateJob,
23-
RpcSnarkPoolJobFull, RpcSnarkPoolJobSnarkWork, RpcSnarkPoolJobSummary,
24-
RpcSnarkerJobCommitResponse, RpcSnarkerJobSpecResponse, RpcTransactionInjectResponse,
25-
TransactionStatus,
17+
RpcNodeStatusResources, RpcNodeStatusTransactionPool, RpcNodeStatusTransitionFrontier,
18+
RpcNodeStatusTransitionFrontierBlockSummary, RpcNodeStatusTransitionFrontierSync,
19+
RpcRequestExtraData, RpcScanStateSummary, RpcScanStateSummaryBlock,
20+
RpcScanStateSummaryBlockTransaction, RpcScanStateSummaryBlockTransactionKind,
21+
RpcScanStateSummaryScanStateJob, RpcSnarkPoolJobFull, RpcSnarkPoolJobSnarkWork,
22+
RpcSnarkPoolJobSummary, RpcSnarkerJobCommitResponse, RpcSnarkerJobSpecResponse,
23+
RpcTransactionInjectResponse, TransactionStatus,
2624
},
2725
snark_pool::SnarkPoolAction,
2826
transition_frontier::sync::{
@@ -819,26 +817,8 @@ fn compute_node_status<S: Service>(store: &mut Store<S>) -> RpcNodeStatus {
819817
let mut ops = MallocSizeOfOps::new(None, Some(Box::new(fun)));
820818
size_of_val(&state.p2p) + state.p2p.size_of(&mut ops)
821819
},
822-
transition_frontier: RpcNodeStatusResourcesTransitionFrontier {
823-
best_chain_size: state.transition_frontier.best_chain.len(),
824-
needed_protocol_states_size: state.transition_frontier.needed_protocol_states.len(),
825-
blacklist_size: state.transition_frontier.blacklist.len(),
826-
diff_tx_size: state
827-
.transition_frontier
828-
.chain_diff
829-
.as_ref()
830-
.map(|d| d.new_commands.len() + d.removed_commands.len())
831-
.unwrap_or_default(),
832-
},
833-
snark_pool: {
834-
let (candidates_size, candidates_inconsistency) =
835-
state.snark_pool.candidates.check();
836-
RpcNodeStatusResourcesSnarkPool {
837-
pool_size: state.snark_pool.pool.len(),
838-
candidates_size,
839-
candidates_inconsistency,
840-
}
841-
},
820+
transition_frontier: state.transition_frontier.resources_usage(),
821+
snark_pool: state.snark_pool.resources_usage(),
842822
},
843823
};
844824
status

node/src/snark_pool/candidate/snark_pool_candidate_state.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl SnarkPoolCandidatesState {
5151
Self::default()
5252
}
5353

54-
pub fn check(&self) -> (usize, BTreeSet<(PeerId, SnarkJobId)>) {
54+
pub fn check(&self) -> (usize, Vec<(PeerId, SnarkJobId)>) {
5555
let len = self.by_peer.iter().map(|(_, v)| v.len()).sum::<usize>();
5656
let lhs = self
5757
.by_job_id

node/src/snark_pool/snark_pool_state.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use super::SnarkPoolConfig;
1515
#[derive(Serialize, Deserialize, Clone)]
1616
pub struct SnarkPoolState {
1717
config: SnarkPoolConfig,
18-
pub pool: DistributedPool<JobState, SnarkJobId>,
18+
pool: DistributedPool<JobState, SnarkJobId>,
1919
pub candidates: SnarkPoolCandidatesState,
2020
pub(super) last_check_timeouts: Timestamp,
2121
}
@@ -203,6 +203,16 @@ impl SnarkPoolState {
203203
self.pool
204204
.next_messages_to_send(index_and_limit, |job| job.snark_msg())
205205
}
206+
207+
pub fn resources_usage(&self) -> serde_json::Value {
208+
let (size, inconsistency) = self.candidates.check();
209+
210+
serde_json::json!({
211+
"pool_size": self.pool.len(),
212+
"candidates_size": size,
213+
"candidates_inconsistency": inconsistency,
214+
})
215+
}
206216
}
207217

208218
fn is_job_commitment_timed_out(job: &JobState, time_now: Timestamp) -> bool {

node/src/transition_frontier/transition_frontier_state.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,19 @@ impl TransitionFrontierState {
196196
reorg_best_tip: false, // TODO: Unused for now
197197
})
198198
}
199+
200+
pub fn resources_usage(&self) -> serde_json::Value {
201+
serde_json::json!({
202+
"best_chain_size": self.best_chain.len(),
203+
"needed_protocol_states_size": self
204+
.needed_protocol_states
205+
.len(),
206+
"blacklist_size": self.blacklist.len(),
207+
"diff_tx_size": self
208+
.chain_diff
209+
.as_ref()
210+
.map(|d| d.new_commands.len() + d.removed_commands.len())
211+
.unwrap_or_default()
212+
})
213+
}
199214
}

0 commit comments

Comments
 (0)