From 73910a70767c433e84e39baa0d0de23ef4d99738 Mon Sep 17 00:00:00 2001 From: HaoranYi Date: Tue, 24 Oct 2023 15:04:17 +0000 Subject: [PATCH 1/2] optimize account hash merkle tree index from vec to 2-element array --- accounts-db/src/accounts_hash.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/accounts-db/src/accounts_hash.rs b/accounts-db/src/accounts_hash.rs index e9f25b318d5a4b..717603ee33d5c1 100644 --- a/accounts-db/src/accounts_hash.rs +++ b/accounts-db/src/accounts_hash.rs @@ -334,7 +334,8 @@ const _: () = assert!( #[derive(Default, Debug, PartialEq, Eq)] pub struct CumulativeOffset { - pub index: Vec, + /// Since the source data in at most 2D, two indexes are enough. + pub index: [usize; 2], pub start_offset: usize, } @@ -416,7 +417,7 @@ impl CumulativeOffsets { .filter_map(|(i, len)| { if len > 0 { let result = CumulativeOffset { - index: vec![i], + index: [i, i], start_offset: total_count, }; total_count += len; @@ -1373,7 +1374,7 @@ mod tests { cumulative_offsets = Vec::with_capacity(raw.len() * v_outer.len()); } cumulative_offsets.push(CumulativeOffset { - index: vec![i, j], + index: [i, j], start_offset: total_count, }); total_count += len; @@ -2126,7 +2127,7 @@ mod tests { fn test_accountsdb_cumulative_find() { let input = CumulativeOffsets { cumulative_offsets: vec![CumulativeOffset { - index: vec![0], + index: [0; 2], start_offset: 0, }], total_count: 0, @@ -2136,11 +2137,11 @@ mod tests { let input = CumulativeOffsets { cumulative_offsets: vec![ CumulativeOffset { - index: vec![0], + index: [0; 2], start_offset: 0, }, CumulativeOffset { - index: vec![1], + index: [1; 2], start_offset: 2, }, ], From 911c9d9a53c2f1cf91cf1a49f463334c03b2e2ad Mon Sep 17 00:00:00 2001 From: HaoranYi Date: Tue, 24 Oct 2023 17:25:20 +0000 Subject: [PATCH 2/2] typo --- accounts-db/src/accounts_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts-db/src/accounts_hash.rs b/accounts-db/src/accounts_hash.rs index 717603ee33d5c1..d5b3d34b0f7d01 100644 --- a/accounts-db/src/accounts_hash.rs +++ b/accounts-db/src/accounts_hash.rs @@ -334,7 +334,7 @@ const _: () = assert!( #[derive(Default, Debug, PartialEq, Eq)] pub struct CumulativeOffset { - /// Since the source data in at most 2D, two indexes are enough. + /// Since the source data is at most 2D, two indexes are enough. pub index: [usize; 2], pub start_offset: usize, }