Skip to content
This repository has been archived by the owner on Jan 22, 2025. It is now read-only.

remove unused parameters from CalculateHashIntermediate #17949

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions runtime/src/accounts_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6185,10 +6185,10 @@ pub mod tests {
let pubkey255 = Pubkey::new(&[0xffu8; 32]);

let mut raw_expected = vec![
CalculateHashIntermediate::new(0, Hash::default(), 1, slot, pubkey0),
CalculateHashIntermediate::new(1, Hash::default(), 128, slot, pubkey127),
CalculateHashIntermediate::new(2, Hash::default(), 129, slot, pubkey128),
CalculateHashIntermediate::new(3, Hash::default(), 256, slot, pubkey255),
CalculateHashIntermediate::new_without_slot(Hash::default(), 1, pubkey0),
CalculateHashIntermediate::new_without_slot(Hash::default(), 128, pubkey127),
CalculateHashIntermediate::new_without_slot(Hash::default(), 129, pubkey128),
CalculateHashIntermediate::new_without_slot(Hash::default(), 256, pubkey255),
];

let expected_hashes = vec![
Expand Down
100 changes: 36 additions & 64 deletions runtime/src/accounts_hash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use log::*;
use rayon::prelude::*;
use solana_measure::measure::Measure;
use solana_sdk::{
clock::Slot,
hash::{Hash, Hasher},
pubkey::Pubkey,
};
Expand Down Expand Up @@ -82,15 +81,6 @@ impl CalculateHashIntermediate {
pubkey,
}
}

// exists so tests and benches don't have to change yet
pub fn new(_version: u64, hash: Hash, lamports: u64, _slot: Slot, pubkey: Pubkey) -> Self {
Self {
hash,
lamports,
pubkey,
}
}
}

#[derive(Default, Debug, PartialEq)]
Expand Down Expand Up @@ -864,19 +854,14 @@ pub mod tests {

let key = Pubkey::new(&[11u8; 32]);
let hash = Hash::new(&[1u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 88, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 88, key);
account_maps.push(val);

// 2nd key - zero lamports, so will be removed
let key = Pubkey::new(&[12u8; 32]);
let hash = Hash::new(&[2u8; 32]);
let val = CalculateHashIntermediate::new(
0,
hash,
ZERO_RAW_LAMPORTS_SENTINEL,
Slot::default(),
key,
);
let val =
CalculateHashIntermediate::new_without_slot(hash, ZERO_RAW_LAMPORTS_SENTINEL, key);
account_maps.push(val);

let result = AccountsHash::rest_of_hash_calculation(
Expand All @@ -891,7 +876,7 @@ pub mod tests {
// 3rd key - with pubkey value before 1st key so it will be sorted first
let key = Pubkey::new(&[10u8; 32]);
let hash = Hash::new(&[2u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 20, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 20, key);
account_maps.push(val);

let result = AccountsHash::rest_of_hash_calculation(
Expand All @@ -906,7 +891,7 @@ pub mod tests {
// 3rd key - with later slot
let key = Pubkey::new(&[10u8; 32]);
let hash = Hash::new(&[99u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 30, Slot::default() + 1, key);
let val = CalculateHashIntermediate::new_without_slot(hash, 30, key);
account_maps.push(val);

let result = AccountsHash::rest_of_hash_calculation(
Expand All @@ -932,19 +917,14 @@ pub mod tests {

let key = Pubkey::new(&[11u8; 32]);
let hash = Hash::new(&[1u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 88, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 88, key);
account_maps.push(val);

// 2nd key - zero lamports, so will be removed
let key = Pubkey::new(&[12u8; 32]);
let hash = Hash::new(&[2u8; 32]);
let val = CalculateHashIntermediate::new(
0,
hash,
ZERO_RAW_LAMPORTS_SENTINEL,
Slot::default(),
key,
);
let val =
CalculateHashIntermediate::new_without_slot(hash, ZERO_RAW_LAMPORTS_SENTINEL, key);
account_maps.push(val);

let mut previous_pass = PreviousPass::default();
Expand Down Expand Up @@ -1019,12 +999,12 @@ pub mod tests {

let key = Pubkey::new(&[11u8; 32]);
let hash = Hash::new(&[1u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 88, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 88, key);
account_maps.push(val);

let key = Pubkey::new(&[12u8; 32]);
let hash = Hash::new(&[2u8; 32]);
let val = CalculateHashIntermediate::new(0, hash, 20, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 20, key);
account_maps.push(val);

let result = AccountsHash::rest_of_hash_calculation(
Expand Down Expand Up @@ -1100,7 +1080,7 @@ pub mod tests {
total_lamports_expected += lamports;
let key = Pubkey::new_unique();
let hash = Hash::new_unique();
let val = CalculateHashIntermediate::new(0, hash, lamports, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, lamports, key);
account_maps.push(val);
}

Expand Down Expand Up @@ -1259,7 +1239,6 @@ pub mod tests {
let key_b = Pubkey::new(&[2u8; 32]);
let key_c = Pubkey::new(&[3u8; 32]);
const COUNT: usize = 6;
const VERSION: u64 = 0;
let hashes: Vec<_> = (0..COUNT)
.into_iter()
.map(|i| Hash::new(&[i as u8; 32]))
Expand All @@ -1273,13 +1252,7 @@ pub mod tests {
.zip(keys.iter())
.enumerate()
.map(|(i, (hash, key))| {
CalculateHashIntermediate::new(
VERSION,
hash,
(i + 1) as u64,
u64::MAX - i as u64,
*key,
)
CalculateHashIntermediate::new_without_slot(hash, (i + 1) as u64, *key)
})
.collect();

Expand Down Expand Up @@ -1444,13 +1417,13 @@ pub mod tests {
let mut stats = HashStats::default();
let key = Pubkey::new_unique();
let hash = Hash::new_unique();
let val = CalculateHashIntermediate::new(1, hash, 1, 1, key);
let val = CalculateHashIntermediate::new_without_slot(hash, 1, key);

// slot same, version <
let hash2 = Hash::new_unique();
let val2 = CalculateHashIntermediate::new(0, hash2, 4, 1, key);
let val3 = CalculateHashIntermediate::new(3, hash2, 4, 1, key);
let val4 = CalculateHashIntermediate::new(4, hash2, 4, 1, key);
let val2 = CalculateHashIntermediate::new_without_slot(hash2, 4, key);
let val3 = CalculateHashIntermediate::new_without_slot(hash2, 4, key);
let val4 = CalculateHashIntermediate::new_without_slot(hash2, 4, key);

let src = vec![vec![val2.clone()], vec![val.clone()]];
let result = AccountsHash::sort_hash_intermediate(src.clone(), &mut stats);
Expand Down Expand Up @@ -1478,11 +1451,11 @@ pub mod tests {
solana_logger::setup();
let key = Pubkey::new_unique();
let hash = Hash::new_unique();
let val = CalculateHashIntermediate::new(1, hash, 1, 1, key);
let val = CalculateHashIntermediate::new_without_slot(hash, 1, key);

// slot same, version <
let hash2 = Hash::new_unique();
let val2 = CalculateHashIntermediate::new(0, hash2, 4, 1, key);
let val2 = CalculateHashIntermediate::new_without_slot(hash2, 4, key);
assert_eq!(
std::cmp::Ordering::Equal, // no longer comparing slots or versions
AccountsHash::compare_two_hash_entries(&val, &val2)
Expand All @@ -1502,23 +1475,23 @@ pub mod tests {

// slot same, vers =
let hash3 = Hash::new_unique();
let val3 = CalculateHashIntermediate::new(1, hash3, 2, 1, key);
let val3 = CalculateHashIntermediate::new_without_slot(hash3, 2, key);
assert_eq!(
std::cmp::Ordering::Equal,
AccountsHash::compare_two_hash_entries(&val, &val3)
);

// slot same, vers >
let hash4 = Hash::new_unique();
let val4 = CalculateHashIntermediate::new(2, hash4, 6, 1, key);
let val4 = CalculateHashIntermediate::new_without_slot(hash4, 6, key);
assert_eq!(
std::cmp::Ordering::Equal, // no longer comparing slots or versions
AccountsHash::compare_two_hash_entries(&val, &val4)
);

// slot >, version <
let hash5 = Hash::new_unique();
let val5 = CalculateHashIntermediate::new(0, hash5, 8, 2, key);
let val5 = CalculateHashIntermediate::new_without_slot(hash5, 8, key);
assert_eq!(
std::cmp::Ordering::Equal, // no longer comparing slots or versions
AccountsHash::compare_two_hash_entries(&val, &val5)
Expand All @@ -1532,20 +1505,15 @@ pub mod tests {
let key = Pubkey::new_unique();
let hash = Hash::new_unique();
let mut account_maps = Vec::new();
let val = CalculateHashIntermediate::new(0, hash, 1, Slot::default(), key);
let val = CalculateHashIntermediate::new_without_slot(hash, 1, key);
account_maps.push(val.clone());

let result = AccountsHash::de_dup_accounts_from_stores(true, &account_maps[..]);
assert_eq!(result, (vec![val.hash], val.lamports as u128));

// zero original lamports, higher version
let val = CalculateHashIntermediate::new(
1,
hash,
ZERO_RAW_LAMPORTS_SENTINEL,
Slot::default(),
key,
);
let val =
CalculateHashIntermediate::new_without_slot(hash, ZERO_RAW_LAMPORTS_SENTINEL, key);
account_maps.push(val); // has to be after previous entry since account_maps are in slot order

let result = AccountsHash::de_dup_accounts_from_stores(true, &account_maps[..]);
Expand Down Expand Up @@ -1753,11 +1721,9 @@ pub mod tests {
#[test]
fn test_accountsdb_flatten_hash_intermediate() {
solana_logger::setup();
let test = vec![vec![vec![CalculateHashIntermediate::new(
1,
let test = vec![vec![vec![CalculateHashIntermediate::new_without_slot(
Hash::new_unique(),
2,
3,
Pubkey::new_unique(),
)]]];
let mut stats = HashStats::default();
Expand All @@ -1775,14 +1741,20 @@ pub mod tests {

let test = vec![
vec![vec![
CalculateHashIntermediate::new(1, Hash::new_unique(), 2, 3, Pubkey::new_unique()),
CalculateHashIntermediate::new(8, Hash::new_unique(), 9, 10, Pubkey::new_unique()),
CalculateHashIntermediate::new_without_slot(
Hash::new_unique(),
2,
Pubkey::new_unique(),
),
CalculateHashIntermediate::new_without_slot(
Hash::new_unique(),
9,
Pubkey::new_unique(),
),
]],
vec![vec![CalculateHashIntermediate::new(
4,
vec![vec![CalculateHashIntermediate::new_without_slot(
Hash::new_unique(),
5,
6,
Pubkey::new_unique(),
)]],
];
Expand Down