Skip to content

Commit df4cde7

Browse files
enhancement to hot tier implementation
allow increasing the size of the existing hot tier restrict from reducing the size
1 parent 52f603f commit df4cde7

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

server/src/hottier.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,26 @@ impl HotTierManager {
106106
stream: &str,
107107
size: &str,
108108
) -> Result<(), HotTierError> {
109+
if self.check_stream_hot_tier_exists(stream) {
110+
//delete existing hot tier if its size is less than the updated hot tier size else return error
111+
let existing_hot_tier = self.get_hot_tier(stream).await?;
112+
if human_size_to_bytes(size) < human_size_to_bytes(&existing_hot_tier.size) {
113+
return Err(HotTierError::ObjectStorageError(ObjectStorageError::Custom(format!(
114+
"The hot tier size for the stream is already set to {} which is greater than the updated hot tier size of {}, reducing the hot tier size is not allowed",
115+
existing_hot_tier.size,
116+
size
117+
))));
118+
}
119+
}
120+
109121
let (total_disk_space, available_disk_space, used_disk_space) = get_disk_usage();
110122

111123
if let (Some(total_disk_space), Some(available_disk_space), Some(used_disk_space)) =
112124
(total_disk_space, available_disk_space, used_disk_space)
113125
{
114126
let stream_hot_tier_size = human_size_to_bytes(size).unwrap();
115127
let total_hot_tier_size = self.get_hot_tiers_size(stream).await?;
116-
let projected_disk_usage = used_disk_space + total_hot_tier_size + stream_hot_tier_size;
128+
let projected_disk_usage = total_hot_tier_size + stream_hot_tier_size;
117129

118130
let usage_percentage = (projected_disk_usage as f64 / total_disk_space as f64) * 100.0;
119131

@@ -130,12 +142,6 @@ impl HotTierManager {
130142
}
131143
}
132144

133-
if self.check_stream_hot_tier_exists(stream) {
134-
let available_date_list = self.fetch_hot_tier_dates(stream).await?;
135-
self.delete_files_from_hot_tier(stream, &available_date_list)
136-
.await?;
137-
}
138-
139145
Ok(())
140146
}
141147

0 commit comments

Comments
 (0)