HBASE-15222 Addendum - Use less contended classes for metrics

This commit is contained in:
Elliott Clark 2016-02-25 09:08:11 -08:00
parent 43f99def67
commit 77133fd225
3 changed files with 10 additions and 10 deletions

View File

@ -310,12 +310,8 @@ public class FastLongHistogram {
* Resets the histogram for new counting. * Resets the histogram for new counting.
*/ */
public FastLongHistogram reset() { public FastLongHistogram reset() {
if (this.bins.hasData.get()) {
Bins oldBins = this.bins; Bins oldBins = this.bins;
this.bins = new Bins(this.bins, this.bins.counts.length - 3, 0.01, 0.99); this.bins = new Bins(this.bins, this.bins.counts.length - 3, 0.01, 0.99);
return new FastLongHistogram(oldBins); return new FastLongHistogram(oldBins);
} }
return null;
}
} }

View File

@ -63,8 +63,10 @@ public class MutableHistogram extends MutableMetric implements MetricHistogram {
public synchronized void snapshot(MetricsRecordBuilder metricsRecordBuilder, boolean all) { public synchronized void snapshot(MetricsRecordBuilder metricsRecordBuilder, boolean all) {
// Get a reference to the old histogram. // Get a reference to the old histogram.
FastLongHistogram histo = histogram.reset(); FastLongHistogram histo = histogram.reset();
if (histo != null) {
updateSnapshotMetrics(metricsRecordBuilder, histo); updateSnapshotMetrics(metricsRecordBuilder, histo);
} }
}
protected void updateSnapshotMetrics(MetricsRecordBuilder metricsRecordBuilder, protected void updateSnapshotMetrics(MetricsRecordBuilder metricsRecordBuilder,
FastLongHistogram histo) { FastLongHistogram histo) {

View File

@ -56,9 +56,11 @@ public abstract class MutableRangeHistogram extends MutableHistogram implements
public synchronized void snapshot(MetricsRecordBuilder metricsRecordBuilder, boolean all) { public synchronized void snapshot(MetricsRecordBuilder metricsRecordBuilder, boolean all) {
// Get a reference to the old histogram. // Get a reference to the old histogram.
FastLongHistogram histo = histogram.reset(); FastLongHistogram histo = histogram.reset();
if (histo != null) {
updateSnapshotMetrics(metricsRecordBuilder, histo); updateSnapshotMetrics(metricsRecordBuilder, histo);
updateSnapshotRangeMetrics(metricsRecordBuilder, histo); updateSnapshotRangeMetrics(metricsRecordBuilder, histo);
} }
}
public void updateSnapshotRangeMetrics(MetricsRecordBuilder metricsRecordBuilder, public void updateSnapshotRangeMetrics(MetricsRecordBuilder metricsRecordBuilder,
FastLongHistogram histogram) { FastLongHistogram histogram) {