grafeo_common/memory/
usage.rs1use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10pub struct StoreMemory {
11 pub total_bytes: usize,
13 pub nodes_bytes: usize,
15 pub edges_bytes: usize,
17 pub node_properties_bytes: usize,
19 pub edge_properties_bytes: usize,
21 pub property_column_count: usize,
23}
24
25impl StoreMemory {
26 pub fn compute_total(&mut self) {
28 self.total_bytes = self.nodes_bytes
29 + self.edges_bytes
30 + self.node_properties_bytes
31 + self.edge_properties_bytes;
32 }
33}
34
35#[derive(Debug, Clone, Default, Serialize, Deserialize)]
37pub struct IndexMemory {
38 pub total_bytes: usize,
40 pub forward_adjacency_bytes: usize,
42 pub backward_adjacency_bytes: usize,
44 pub label_index_bytes: usize,
46 pub node_labels_bytes: usize,
48 pub property_index_bytes: usize,
50 pub vector_indexes: Vec<NamedMemory>,
52 pub text_indexes: Vec<NamedMemory>,
54}
55
56impl IndexMemory {
57 pub fn compute_total(&mut self) {
59 self.total_bytes = self.forward_adjacency_bytes
60 + self.backward_adjacency_bytes
61 + self.label_index_bytes
62 + self.node_labels_bytes
63 + self.property_index_bytes
64 + self.vector_indexes.iter().map(|v| v.bytes).sum::<usize>()
65 + self.text_indexes.iter().map(|t| t.bytes).sum::<usize>();
66 }
67}
68
69#[derive(Debug, Clone, Default, Serialize, Deserialize)]
71pub struct NamedMemory {
72 pub name: String,
74 pub bytes: usize,
76 pub item_count: usize,
78}
79
80#[derive(Debug, Clone, Default, Serialize, Deserialize)]
82pub struct MvccMemory {
83 pub total_bytes: usize,
85 pub node_version_chains_bytes: usize,
87 pub edge_version_chains_bytes: usize,
89 pub average_chain_depth: f64,
91 pub max_chain_depth: usize,
93}
94
95impl MvccMemory {
96 pub fn compute_total(&mut self) {
98 self.total_bytes = self.node_version_chains_bytes + self.edge_version_chains_bytes;
99 }
100}
101
102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
104pub struct StringPoolMemory {
105 pub total_bytes: usize,
107 pub label_registry_bytes: usize,
109 pub edge_type_registry_bytes: usize,
111 pub label_count: usize,
113 pub edge_type_count: usize,
115}
116
117impl StringPoolMemory {
118 pub fn compute_total(&mut self) {
120 self.total_bytes = self.label_registry_bytes + self.edge_type_registry_bytes;
121 }
122}