You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by sa...@apache.org on 2023/04/13 08:17:26 UTC
[ozone] branch master updated: HDDS-8406. Add OM DB update data size and sequence metrics (#4558)
This is an automated email from the ASF dual-hosted git repository.
sammichen 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 fc97e4893c HDDS-8406. Add OM DB update data size and sequence metrics (#4558)
fc97e4893c is described below
commit fc97e4893c9625864ee32a0e95eba78858f7e60e
Author: Sammi Chen <sa...@apache.org>
AuthorDate: Thu Apr 13 16:17:18 2023 +0800
HDDS-8406. Add OM DB update data size and sequence metrics (#4558)
---
.../org/apache/hadoop/hdds/utils/db/RDBMetrics.java | 19 +++++++++++++++++++
.../org/apache/hadoop/hdds/utils/db/RDBStore.java | 14 +++++++++++---
2 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBMetrics.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBMetrics.java
index e4140c43c2..ded6007101 100644
--- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBMetrics.java
+++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBMetrics.java
@@ -56,6 +56,9 @@ public class RDBMetrics {
private @Metric MutableCounterLong numDBKeyGetIfExistChecks;
private @Metric MutableCounterLong numDBKeyGetIfExistMisses;
private @Metric MutableCounterLong numDBKeyGetIfExistGets;
+ // WAL Update data size and sequence count
+ private @Metric MutableCounterLong walUpdateDataSize;
+ private @Metric MutableCounterLong walUpdateSequenceCount;
public long getNumDBKeyGetIfExistGets() {
@@ -101,6 +104,22 @@ public class RDBMetrics {
return numDBKeyMayExistMisses.value();
}
+ public void incWalUpdateDataSize(long size) {
+ walUpdateDataSize.incr(size);
+ }
+
+ public long getWalUpdateDataSize() {
+ return walUpdateDataSize.value();
+ }
+
+ public void incWalUpdateSequenceCount(long count) {
+ walUpdateSequenceCount.incr(count);
+ }
+
+ public long getWalUpdateSequenceCount() {
+ return walUpdateSequenceCount.value();
+ }
+
public static synchronized void unRegister() {
instance = null;
MetricsSystem ms = DefaultMetricsSystem.instance();
diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBStore.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBStore.java
index 92e95fc3a4..5bd993f86d 100644
--- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBStore.java
+++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBStore.java
@@ -390,9 +390,11 @@ public class RDBStore implements DBStore {
long currSequenceNumber = result.sequenceNumber();
if (checkValidStartingSeqNumber &&
currSequenceNumber > 1 + sequenceNumber) {
- throw new SequenceNumberNotFoundException("Unable to read data from"
- + " RocksDB wal to get delta updates. It may have already been"
- + " flushed to SSTs.");
+ throw new SequenceNumberNotFoundException("Unable to read full data"
+ + " from RocksDB wal to get delta updates. It may have"
+ + " partially been flushed to SSTs. Requested sequence number"
+ + " is " + sequenceNumber + " and first available sequence" +
+ " number is " + currSequenceNumber + " in wal.");
}
// If the above condition was not satisfied, then it is OK to reset
// the flag.
@@ -428,6 +430,12 @@ public class RDBStore implements DBStore {
+ "This exception will not be thrown to the client ",
sequenceNumber, e);
dbUpdatesWrapper.setDBUpdateSuccess(false);
+ } finally {
+ if (dbUpdatesWrapper.getData().size() > 0) {
+ rdbMetrics.incWalUpdateDataSize(cumulativeDBUpdateLogBatchSize);
+ rdbMetrics.incWalUpdateSequenceCount(
+ dbUpdatesWrapper.getCurrentSequenceNumber() - sequenceNumber);
+ }
}
dbUpdatesWrapper.setLatestSequenceNumber(db.getLatestSequenceNumber());
return dbUpdatesWrapper;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org