Skip to content

Commit

Permalink
[TieredStorage] Define OwnerOffset as u32
Browse files Browse the repository at this point in the history
  • Loading branch information
yhchiang-sol committed Nov 16, 2023
1 parent 6fc6a49 commit f99b348
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
4 changes: 3 additions & 1 deletion accounts-db/src/tiered_storage/hot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,9 @@ pub mod tests {
let hot_storage = HotStorageReader::new_from_path(&path).unwrap();
for (i, address) in addresses.iter().enumerate() {
assert_eq!(
hot_storage.get_owner_address(OwnerOffset(i)).unwrap(),
hot_storage
.get_owner_address(OwnerOffset(i as u32))
.unwrap(),
address,
);
}
Expand Down
11 changes: 7 additions & 4 deletions accounts-db/src/tiered_storage/owners.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@ pub struct OwnersBlock;

/// The offset to an owner entry in the owners block.
/// This is used to obtain the address of the account owner.
///
/// Note that as its internal type is u32, it means the maximum number of
/// unique owners in one TieredStorageFile is 2^32.
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct OwnerOffset(pub usize);
pub struct OwnerOffset(pub u32);

/// OwnersBlock is persisted as a consecutive bytes of pubkeys without any
/// meta-data. For each account meta, it has a owner_offset field to
Expand All @@ -42,8 +45,8 @@ impl OwnersBlock {
footer: &TieredStorageFooter,
owner_offset: OwnerOffset,
) -> TieredStorageResult<&'a Pubkey> {
let offset =
footer.owners_block_offset as usize + (std::mem::size_of::<Pubkey>() * owner_offset.0);
let offset = footer.owners_block_offset as usize
+ (std::mem::size_of::<Pubkey>() * owner_offset.0 as usize);
let (pubkey, _) = get_type::<Pubkey>(mmap, offset)?;

Ok(pubkey)
Expand Down Expand Up @@ -90,7 +93,7 @@ mod tests {

for (i, address) in addresses.iter().enumerate() {
assert_eq!(
OwnersBlock::get_owner_address(&mmap, &footer, OwnerOffset(i)).unwrap(),
OwnersBlock::get_owner_address(&mmap, &footer, OwnerOffset(i as u32)).unwrap(),
address
);
}
Expand Down

0 comments on commit f99b348

Please sign in to comment.