use atomicu64 for bucket maxsize instead of lock (#29569)
This commit is contained in:
parent
cc4e134079
commit
d3daea65b9
|
@ -1,9 +1,12 @@
|
||||||
use std::sync::{atomic::AtomicU64, Arc, Mutex};
|
use std::sync::{
|
||||||
|
atomic::{AtomicU64, Ordering},
|
||||||
|
Arc,
|
||||||
|
};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct BucketStats {
|
pub struct BucketStats {
|
||||||
pub resizes: AtomicU64,
|
pub resizes: AtomicU64,
|
||||||
pub max_size: Mutex<u64>,
|
pub max_size: AtomicU64,
|
||||||
pub resize_us: AtomicU64,
|
pub resize_us: AtomicU64,
|
||||||
pub new_file_us: AtomicU64,
|
pub new_file_us: AtomicU64,
|
||||||
pub flush_file_us: AtomicU64,
|
pub flush_file_us: AtomicU64,
|
||||||
|
@ -13,8 +16,7 @@ pub struct BucketStats {
|
||||||
|
|
||||||
impl BucketStats {
|
impl BucketStats {
|
||||||
pub fn update_max_size(&self, size: u64) {
|
pub fn update_max_size(&self, size: u64) {
|
||||||
let mut max = self.max_size.lock().unwrap();
|
self.max_size.fetch_max(size, Ordering::Relaxed);
|
||||||
*max = std::cmp::max(*max, size);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -378,13 +378,8 @@ impl BucketMapHolderStats {
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"disk_index_max_size",
|
"disk_index_max_size",
|
||||||
disk.map(|disk| {
|
disk.map(|disk| { disk.stats.index.max_size.swap(0, Ordering::Relaxed) })
|
||||||
let mut lock = disk.stats.index.max_size.lock().unwrap();
|
.unwrap_or_default(),
|
||||||
let value = *lock;
|
|
||||||
*lock = 0;
|
|
||||||
value
|
|
||||||
})
|
|
||||||
.unwrap_or_default(),
|
|
||||||
i64
|
i64
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
@ -429,13 +424,8 @@ impl BucketMapHolderStats {
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"disk_data_max_size",
|
"disk_data_max_size",
|
||||||
disk.map(|disk| {
|
disk.map(|disk| { disk.stats.data.max_size.swap(0, Ordering::Relaxed) })
|
||||||
let mut lock = disk.stats.data.max_size.lock().unwrap();
|
.unwrap_or_default(),
|
||||||
let value = *lock;
|
|
||||||
*lock = 0;
|
|
||||||
value
|
|
||||||
})
|
|
||||||
.unwrap_or_default(),
|
|
||||||
i64
|
i64
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
|
Loading…
Reference in New Issue