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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]