Add getMin
, getMax
, getCount
, getSum
to HistogramData
class object. (#4742)
Summary: Expose common stats min,max,count,sum via statistics JNI. These stats are not fully exposed on the Java side as is, but are available on the native side. Pull Request resolved: https://github.com/facebook/rocksdb/pull/4742 Differential Revision: D13403766 Pulled By: ajkr fbshipit-source-id: 5b70f7bd3fb7490aab73dcbd09f13490fce5c773
This commit is contained in:
parent
4ed3c1eb88
commit
a914a1c6dc
@ -430,6 +430,7 @@ struct HistogramData {
|
|||||||
double max = 0.0;
|
double max = 0.0;
|
||||||
uint64_t count = 0;
|
uint64_t count = 0;
|
||||||
uint64_t sum = 0;
|
uint64_t sum = 0;
|
||||||
|
double min = 0.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum StatsLevel {
|
enum StatsLevel {
|
||||||
|
@ -1612,7 +1612,7 @@ class HistogramDataJni : public JavaClass {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static jmethodID mid = env->GetMethodID(jclazz, "<init>", "(DDDDD)V");
|
static jmethodID mid = env->GetMethodID(jclazz, "<init>", "(DDDDDDJJD)V");
|
||||||
assert(mid != nullptr);
|
assert(mid != nullptr);
|
||||||
return mid;
|
return mid;
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,8 @@ jobject Java_org_rocksdb_Statistics_getHistogramData(JNIEnv* env,
|
|||||||
|
|
||||||
return env->NewObject(jclazz, mid, data.median, data.percentile95,
|
return env->NewObject(jclazz, mid, data.median, data.percentile95,
|
||||||
data.percentile99, data.average,
|
data.percentile99, data.average,
|
||||||
data.standard_deviation);
|
data.standard_deviation, data.max, data.count,
|
||||||
|
data.sum, data.min);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -11,15 +11,30 @@ public class HistogramData {
|
|||||||
private final double percentile99_;
|
private final double percentile99_;
|
||||||
private final double average_;
|
private final double average_;
|
||||||
private final double standardDeviation_;
|
private final double standardDeviation_;
|
||||||
|
private final double max_;
|
||||||
|
private final long count_;
|
||||||
|
private final long sum_;
|
||||||
|
private final double min_;
|
||||||
|
|
||||||
|
public HistogramData(final double median, final double percentile95,
|
||||||
|
final double percentile99, final double average,
|
||||||
|
final double standardDeviation) {
|
||||||
|
this(median, percentile95, percentile99, average, standardDeviation, 0.0, 0, 0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
public HistogramData(final double median, final double percentile95,
|
public HistogramData(final double median, final double percentile95,
|
||||||
final double percentile99, final double average,
|
final double percentile99, final double average,
|
||||||
final double standardDeviation) {
|
final double standardDeviation, final double max, final long count,
|
||||||
|
final long sum, final double min) {
|
||||||
median_ = median;
|
median_ = median;
|
||||||
percentile95_ = percentile95;
|
percentile95_ = percentile95;
|
||||||
percentile99_ = percentile99;
|
percentile99_ = percentile99;
|
||||||
average_ = average;
|
average_ = average;
|
||||||
standardDeviation_ = standardDeviation;
|
standardDeviation_ = standardDeviation;
|
||||||
|
min_ = min;
|
||||||
|
max_ = max;
|
||||||
|
count_ = count;
|
||||||
|
sum_ = sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getMedian() {
|
public double getMedian() {
|
||||||
@ -41,4 +56,20 @@ public class HistogramData {
|
|||||||
public double getStandardDeviation() {
|
public double getStandardDeviation() {
|
||||||
return standardDeviation_;
|
return standardDeviation_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double getMax() {
|
||||||
|
return max_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getCount() {
|
||||||
|
return count_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getSum() {
|
||||||
|
return sum_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getMin() {
|
||||||
|
return min_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,14 @@ public class StatisticsTest {
|
|||||||
final HistogramData histogramData = statistics.getHistogramData(HistogramType.BYTES_PER_READ);
|
final HistogramData histogramData = statistics.getHistogramData(HistogramType.BYTES_PER_READ);
|
||||||
assertThat(histogramData).isNotNull();
|
assertThat(histogramData).isNotNull();
|
||||||
assertThat(histogramData.getAverage()).isGreaterThan(0);
|
assertThat(histogramData.getAverage()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getMedian()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getPercentile95()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getPercentile99()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getStandardDeviation()).isEqualTo(0.00);
|
||||||
|
assertThat(histogramData.getMax()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getCount()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getSum()).isGreaterThan(0);
|
||||||
|
assertThat(histogramData.getMin()).isGreaterThan(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,6 +237,7 @@ void HistogramStat::Data(HistogramData * const data) const {
|
|||||||
data->standard_deviation = StandardDeviation();
|
data->standard_deviation = StandardDeviation();
|
||||||
data->count = num();
|
data->count = num();
|
||||||
data->sum = sum();
|
data->sum = sum();
|
||||||
|
data->min = static_cast<double>(min());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistogramImpl::Clear() {
|
void HistogramImpl::Clear() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user