@@ -39,24 +39,22 @@ pub struct ManagedLruCache<K, V, S = DefaultHasher, A: Clone + Allocator = Globa
39
39
/// The heap size of keys/values
40
40
kv_heap_size : usize ,
41
41
/// The metrics of memory usage
42
- memory_usage_metrics : Option < IntGauge > ,
42
+ memory_usage_metrics : IntGauge ,
43
43
// Metrics info
44
- metrics_info : Option < MetricsInfo > ,
44
+ metrics_info : MetricsInfo ,
45
45
/// The size reported last time
46
46
last_reported_size_bytes : usize ,
47
47
}
48
48
49
49
impl < K , V , S , A : Clone + Allocator > Drop for ManagedLruCache < K , V , S , A > {
50
50
fn drop ( & mut self ) {
51
- if let Some ( metrics) = & self . memory_usage_metrics {
52
- metrics. set ( 0 . into ( ) ) ;
53
- }
54
- if let Some ( info) = & self . metrics_info {
55
- info. metrics
56
- . stream_memory_usage
57
- . remove_label_values ( & [ & info. table_id , & info. actor_id , & info. desc ] )
58
- . unwrap ( ) ;
59
- }
51
+ let info = & self . metrics_info ;
52
+ self . memory_usage_metrics . set ( 0 . into ( ) ) ;
53
+
54
+ info. metrics
55
+ . stream_memory_usage
56
+ . remove_label_values ( & [ & info. table_id , & info. actor_id , & info. desc ] )
57
+ . unwrap ( ) ;
60
58
}
61
59
}
62
60
@@ -66,15 +64,16 @@ impl<K: Hash + Eq + EstimateSize, V: EstimateSize, S: BuildHasher, A: Clone + Al
66
64
pub fn new_inner (
67
65
inner : LruCache < K , V , S , A > ,
68
66
watermark_epoch : Arc < AtomicU64 > ,
69
- metrics_info : Option < MetricsInfo > ,
67
+ metrics_info : MetricsInfo ,
70
68
) -> Self {
71
- let memory_usage_metrics = metrics_info. as_ref ( ) . map ( |info| {
72
- info. metrics . stream_memory_usage . with_label_values ( & [
73
- & info. table_id ,
74
- & info. actor_id ,
75
- & info. desc ,
76
- ] )
77
- } ) ;
69
+ let memory_usage_metrics = metrics_info
70
+ . metrics
71
+ . stream_memory_usage
72
+ . with_label_values ( & [
73
+ & metrics_info. table_id ,
74
+ & metrics_info. actor_id ,
75
+ & metrics_info. desc ,
76
+ ] ) ;
78
77
79
78
Self {
80
79
inner,
@@ -219,9 +218,7 @@ impl<K: Hash + Eq + EstimateSize, V: EstimateSize, S: BuildHasher, A: Clone + Al
219
218
if self . kv_heap_size . abs_diff ( self . last_reported_size_bytes )
220
219
> REPORT_SIZE_EVERY_N_KB_CHANGE << 10
221
220
{
222
- if let Some ( metrics) = self . memory_usage_metrics . as_ref ( ) {
223
- metrics. set ( self . kv_heap_size as _ ) ;
224
- }
221
+ self . memory_usage_metrics . set ( self . kv_heap_size as _ ) ;
225
222
self . last_reported_size_bytes = self . kv_heap_size ;
226
223
true
227
224
} else {
@@ -234,7 +231,7 @@ pub fn new_unbounded<K: Hash + Eq + EstimateSize, V: EstimateSize>(
234
231
watermark_epoch : Arc < AtomicU64 > ,
235
232
metrics_info : MetricsInfo ,
236
233
) -> ManagedLruCache < K , V > {
237
- ManagedLruCache :: new_inner ( LruCache :: unbounded ( ) , watermark_epoch, Some ( metrics_info) )
234
+ ManagedLruCache :: new_inner ( LruCache :: unbounded ( ) , watermark_epoch, metrics_info)
238
235
}
239
236
240
237
pub fn new_with_hasher_in <
@@ -251,7 +248,7 @@ pub fn new_with_hasher_in<
251
248
ManagedLruCache :: new_inner (
252
249
LruCache :: unbounded_with_hasher_in ( hasher, alloc) ,
253
250
watermark_epoch,
254
- Some ( metrics_info) ,
251
+ metrics_info,
255
252
)
256
253
}
257
254
@@ -263,7 +260,7 @@ pub fn new_with_hasher<K: Hash + Eq + EstimateSize, V: EstimateSize, S: BuildHas
263
260
ManagedLruCache :: new_inner (
264
261
LruCache :: unbounded_with_hasher ( hasher) ,
265
262
watermark_epoch,
266
- Some ( metrics_info) ,
263
+ metrics_info,
267
264
)
268
265
}
269
266
@@ -274,15 +271,15 @@ pub struct MutGuard<'a, V: EstimateSize> {
274
271
// The total size of a collection
275
272
total_size : & ' a mut usize ,
276
273
last_reported_size_bytes : & ' a mut usize ,
277
- memory_usage_metrics : & ' a mut Option < IntGauge > ,
274
+ memory_usage_metrics : & ' a mut IntGauge ,
278
275
}
279
276
280
277
impl < ' a , V : EstimateSize > MutGuard < ' a , V > {
281
278
pub fn new (
282
279
inner : & ' a mut V ,
283
280
total_size : & ' a mut usize ,
284
281
last_reported_size_bytes : & ' a mut usize ,
285
- memory_usage_metrics : & ' a mut Option < IntGauge > ,
282
+ memory_usage_metrics : & ' a mut IntGauge ,
286
283
) -> Self {
287
284
let original_val_size = inner. estimated_size ( ) ;
288
285
Self {
@@ -298,9 +295,7 @@ impl<'a, V: EstimateSize> MutGuard<'a, V> {
298
295
if self . total_size . abs_diff ( * self . last_reported_size_bytes )
299
296
> REPORT_SIZE_EVERY_N_KB_CHANGE << 10
300
297
{
301
- if let Some ( metrics) = self . memory_usage_metrics . as_ref ( ) {
302
- metrics. set ( * self . total_size as _ ) ;
303
- }
298
+ self . memory_usage_metrics . set ( * self . total_size as _ ) ;
304
299
* self . last_reported_size_bytes = * self . total_size ;
305
300
true
306
301
} else {
@@ -340,15 +335,15 @@ pub struct UnsafeMutGuard<V: EstimateSize> {
340
335
// The total size of a collection
341
336
total_size : NonNull < usize > ,
342
337
last_reported_size_bytes : NonNull < usize > ,
343
- memory_usage_metrics : NonNull < Option < IntGauge > > ,
338
+ memory_usage_metrics : NonNull < IntGauge > ,
344
339
}
345
340
346
341
impl < V : EstimateSize > UnsafeMutGuard < V > {
347
342
pub fn new (
348
343
inner : & mut V ,
349
344
total_size : & mut usize ,
350
345
last_reported_size_bytes : & mut usize ,
351
- memory_usage_metrics : & mut Option < IntGauge > ,
346
+ memory_usage_metrics : & mut IntGauge ,
352
347
) -> Self {
353
348
let original_val_size = inner. estimated_size ( ) ;
354
349
Self {
0 commit comments