Commit c16d9cfb authored by Huachao Huang's avatar Huachao Huang Committed by GitHub

Add histogram max (#133)

parent 024a6069
...@@ -2386,7 +2386,8 @@ unsigned char crocksdb_options_statistics_get_histogram( ...@@ -2386,7 +2386,8 @@ unsigned char crocksdb_options_statistics_get_histogram(
double* percentile95, double* percentile95,
double* percentile99, double* percentile99,
double* average, double* average,
double* standard_deviation) { double* standard_deviation,
double* max) {
rocksdb::Statistics* statistics = opt->rep.statistics.get(); rocksdb::Statistics* statistics = opt->rep.statistics.get();
if (statistics) { if (statistics) {
crocksdb_histogramdata_t data; crocksdb_histogramdata_t data;
...@@ -2396,6 +2397,7 @@ unsigned char crocksdb_options_statistics_get_histogram( ...@@ -2396,6 +2397,7 @@ unsigned char crocksdb_options_statistics_get_histogram(
*percentile99 = data.rep.percentile99; *percentile99 = data.rep.percentile99;
*average = data.rep.average; *average = data.rep.average;
*standard_deviation = data.rep.standard_deviation; *standard_deviation = data.rep.standard_deviation;
*max = data.rep.max;
return 1; return 1;
} }
return 0; return 0;
......
...@@ -801,7 +801,8 @@ extern C_ROCKSDB_LIBRARY_API unsigned char crocksdb_options_statistics_get_histo ...@@ -801,7 +801,8 @@ extern C_ROCKSDB_LIBRARY_API unsigned char crocksdb_options_statistics_get_histo
double* percentile95, double* percentile95,
double* percentile99, double* percentile99,
double* average, double* average,
double* standard_deviation); double* standard_deviation,
double* max);
extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_write_buffer_number( extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_max_write_buffer_number(
crocksdb_options_t*, int); crocksdb_options_t*, int);
......
...@@ -438,6 +438,7 @@ extern "C" { ...@@ -438,6 +438,7 @@ extern "C" {
percentile99: *mut c_double, percentile99: *mut c_double,
average: *mut c_double, average: *mut c_double,
standard_deviation: *mut c_double, standard_deviation: *mut c_double,
max: *mut c_double,
) -> bool; ) -> bool;
pub fn crocksdb_options_set_stats_dump_period_sec(options: *mut Options, v: usize); pub fn crocksdb_options_set_stats_dump_period_sec(options: *mut Options, v: usize);
pub fn crocksdb_options_set_num_levels(options: *mut Options, v: c_int); pub fn crocksdb_options_set_num_levels(options: *mut Options, v: c_int);
......
...@@ -38,6 +38,7 @@ pub struct HistogramData { ...@@ -38,6 +38,7 @@ pub struct HistogramData {
pub percentile99: f64, pub percentile99: f64,
pub average: f64, pub average: f64,
pub standard_deviation: f64, pub standard_deviation: f64,
pub max: f64,
} }
pub struct BlockBasedOptions { pub struct BlockBasedOptions {
...@@ -570,6 +571,7 @@ impl DBOptions { ...@@ -570,6 +571,7 @@ impl DBOptions {
&mut data.percentile99, &mut data.percentile99,
&mut data.average, &mut data.average,
&mut data.standard_deviation, &mut data.standard_deviation,
&mut data.max,
); );
if !ret { if !ret {
return None; return None;
......
...@@ -73,6 +73,10 @@ fn test_enable_statistics() { ...@@ -73,6 +73,10 @@ fn test_enable_statistics() {
opts.enable_statistics(); opts.enable_statistics();
opts.set_stats_dump_period_sec(60); opts.set_stats_dump_period_sec(60);
assert!(opts.get_statistics().is_some()); assert!(opts.get_statistics().is_some());
assert!(
opts.get_statistics_histogram(HistogramType::SeekMicros)
.is_some()
);
assert!( assert!(
opts.get_statistics_histogram_string(HistogramType::SeekMicros) opts.get_statistics_histogram_string(HistogramType::SeekMicros)
.is_some() .is_some()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment