You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by ad...@apache.org on 2023/04/18 18:46:54 UTC
[ozone] branch master updated: HDDS-8270. Measure checkAccess latency for Ozone objects (#4467)
This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new d58d529d8d HDDS-8270. Measure checkAccess latency for Ozone objects (#4467)
d58d529d8d is described below
commit d58d529d8d3374bb5e430965b7da44808dc0aec0
Author: tanvipenumudy <46...@users.noreply.github.com>
AuthorDate: Wed Apr 19 00:16:48 2023 +0530
HDDS-8270. Measure checkAccess latency for Ozone objects (#4467)
---
.../src/main/java/org/apache/hadoop/util/MetricUtil.java | 12 ++++++++++++
.../org/apache/hadoop/ozone/om/OMPerformanceMetrics.java | 6 ++++++
.../java/org/apache/hadoop/ozone/om/OmMetadataReader.java | 3 ++-
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/util/MetricUtil.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/util/MetricUtil.java
index 48dfc7a533..029158e066 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/util/MetricUtil.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/util/MetricUtil.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.util;
import org.apache.hadoop.metrics2.lib.MutableRate;
import java.io.IOException;
+import java.util.function.Consumer;
/**
* Encloses helpers to deal with metrics.
@@ -49,4 +50,15 @@ public final class MetricUtil {
metric.add(Time.monotonicNowNanos() - start);
}
}
+
+ public static <T, E extends IOException> T captureLatencyNs(
+ Consumer<Long> latencySetter,
+ CheckedSupplier<T, E> block) throws E {
+ long start = Time.monotonicNowNanos();
+ try {
+ return block.get();
+ } finally {
+ latencySetter.accept(Time.monotonicNowNanos() - start);
+ }
+ }
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMPerformanceMetrics.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMPerformanceMetrics.java
index ffeb827c59..a511549dee 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMPerformanceMetrics.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMPerformanceMetrics.java
@@ -83,6 +83,8 @@ public class OMPerformanceMetrics {
@Metric(about = "Client requests forcing container info cache refresh")
private MutableRate forceContainerCacheRefresh;
+ @Metric(about = "checkAccess latency in nanoseconds")
+ private MutableRate checkAccessLatencyNs;
public void addLookupLatency(long latencyInNs) {
lookupLatencyNs.add(latencyInNs);
@@ -140,4 +142,8 @@ public class OMPerformanceMetrics {
public void setForceContainerCacheRefresh(boolean value) {
forceContainerCacheRefresh.add(value ? 1L : 0L);
}
+
+ public void setCheckAccessLatencyNs(long latencyInNs) {
+ checkAccessLatencyNs.add(latencyInNs);
+ }
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataReader.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataReader.java
index 3b59f6e46f..0d25596f9a 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataReader.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataReader.java
@@ -485,7 +485,8 @@ public class OmMetadataReader implements IOmMetadataReader, Auditor {
public boolean checkAcls(OzoneObj obj, RequestContext context,
boolean throwIfPermissionDenied) throws OMException {
- if (!accessAuthorizer.checkAccess(obj, context)) {
+ if (!captureLatencyNs(perfMetrics::setCheckAccessLatencyNs,
+ () -> accessAuthorizer.checkAccess(obj, context))) {
if (throwIfPermissionDenied) {
String volumeName = obj.getVolumeName() != null ?
"Volume:" + obj.getVolumeName() + " " : "";
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org