From d8f534feabac1124f61ca6e2c3fc46e78022c693 Mon Sep 17 00:00:00 2001 From: narzhang Date: Tue, 4 Mar 2025 23:21:34 +0800 Subject: [PATCH] chunk engine group_id clean up --- src/storage/chunk_engine/src/types/group_id.rs | 5 +++-- src/storage/chunk_engine/src/types/position.rs | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/storage/chunk_engine/src/types/group_id.rs b/src/storage/chunk_engine/src/types/group_id.rs index f706e57..e606fbd 100644 --- a/src/storage/chunk_engine/src/types/group_id.rs +++ b/src/storage/chunk_engine/src/types/group_id.rs @@ -13,6 +13,8 @@ impl GroupId { // 32bit chunk size + 24bit group + 8bit cluster const SHIFT: u32 = 8; pub const COUNT: u32 = (1 << Self::SHIFT); + pub const CLUSTER_MASK: u64 = (Self::COUNT - 1) as u64; + pub const GROUP_MASK: u64 = ((1u64 << 24) - 1) << Self::SHIFT; pub const fn new(chunk_size: Size, cluster: u8, group: u32) -> Self { Self(chunk_size.0 << 32 | (group << Self::SHIFT | cluster as u32) as u64) @@ -31,8 +33,7 @@ impl GroupId { } pub fn offset(&self) -> Size { - const MARKS: u64 = !(GroupId::COUNT - 1) as u64; - self.chunk_size() * (self.0 & MARKS) + self.chunk_size() * (self.0 & Self::GROUP_MASK) } pub fn size(&self) -> Size { diff --git a/src/storage/chunk_engine/src/types/position.rs b/src/storage/chunk_engine/src/types/position.rs index 4e83075..a688ec1 100644 --- a/src/storage/chunk_engine/src/types/position.rs +++ b/src/storage/chunk_engine/src/types/position.rs @@ -16,8 +16,7 @@ impl Position { } pub fn group_id(&self) -> GroupId { - const MARKS: u64 = (GroupId::COUNT - 1) as u64; - const CLEAN: u64 = !(MARKS | MARKS << 32); + const CLEAN: u64 = !(GroupId::CLUSTER_MASK | GroupId::CLUSTER_MASK << 32); GroupId::from(self.0 & CLEAN | self.cluster() as u64) }