HADOOP-16278. With S3A Filesystem, Long Running services End up Doing lot of GC and eventually die.

Contributed by Rajat Khandelwal

(cherry picked from commit 591ca69823)
This commit is contained in:
Rajat Khandelwal 2019-05-09 21:14:37 +01:00 committed by Steve Loughran
parent 095815220d
commit 12e0053932
No known key found for this signature in database
GPG Key ID: D22CF846DBB162A0
1 changed files with 6 additions and 3 deletions

View File

@ -120,7 +120,8 @@ public class S3AInstrumentation implements Closeable, MetricsSource {
private final MutableCounterLong streamBytesReadInClose;
private final MutableCounterLong streamBytesDiscardedInAbort;
private final MutableCounterLong ignoredErrors;
private final MutableQuantiles putLatencyQuantile;
private final MutableQuantiles throttleRateQuantile;
private final MutableCounterLong numberOfFilesCreated;
private final MutableCounterLong numberOfFilesCopied;
private final MutableCounterLong bytesOfFilesCopied;
@ -236,9 +237,9 @@ public class S3AInstrumentation implements Closeable, MetricsSource {
}
//todo need a config for the quantiles interval?
int interval = 1;
quantiles(S3GUARD_METADATASTORE_PUT_PATH_LATENCY,
putLatencyQuantile = quantiles(S3GUARD_METADATASTORE_PUT_PATH_LATENCY,
"ops", "latency", interval);
quantiles(S3GUARD_METADATASTORE_THROTTLE_RATE,
throttleRateQuantile = quantiles(S3GUARD_METADATASTORE_THROTTLE_RATE,
"events", "frequency (Hz)", interval);
registerAsMetricsSource(name);
@ -603,6 +604,8 @@ public class S3AInstrumentation implements Closeable, MetricsSource {
public void close() {
synchronized (metricsSystemLock) {
putLatencyQuantile.stop();
throttleRateQuantile.stop();
metricsSystem.unregisterSource(metricsSourceName);
int activeSources = --metricsSourceActiveCounter;
if (activeSources == 0) {