This is an automated email from the ASF dual-hosted git repository.
ritesh 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 ceaaaae1a2 HDDS-8139. Datanodes should not drop block delete
transactions based on transaction ID (#4384)
ceaaaae1a2 is described below
commit ceaaaae1a27e18c0d24ee5a244cfb023f923c754
Author: Sumit Agrawal <[email protected]>
AuthorDate: Tue Mar 21 11:35:58 2023 +0530
HDDS-8139. Datanodes should not drop block delete transactions based on
transaction ID (#4384)
---
.../commandhandler/DeleteBlocksCommandHandler.java | 26 ++++++++--------------
1 file changed, 9 insertions(+), 17 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
index 3e63af05f2..bbb2c6104f 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java
@@ -368,9 +368,7 @@ public class DeleteBlocksCommandHandler implements
CommandHandler {
int newDeletionBlocks, long txnID, DeletionMarker marker)
throws IOException {
long containerId = delTX.getContainerID();
- if (!isTxnIdValid(containerId, containerData, delTX)) {
- return;
- }
+ logDeleteTransaction(containerId, containerData, delTX);
try (DBHandle containerDB = BlockUtils.getDB(containerData, conf)) {
DeleteTransactionStore<?> store =
(DeleteTransactionStore<?>) containerDB.getStore();
@@ -391,9 +389,7 @@ public class DeleteBlocksCommandHandler implements
CommandHandler {
KeyValueContainerData containerData, DeletedBlocksTransaction delTX)
throws IOException {
long containerId = delTX.getContainerID();
- if (!isTxnIdValid(containerId, containerData, delTX)) {
- return;
- }
+ logDeleteTransaction(containerId, containerData, delTX);
int newDeletionBlocks = 0;
try (DBHandle containerDB = BlockUtils.getDB(containerData, conf)) {
Table<String, BlockData> blockDataTable =
@@ -482,23 +478,19 @@ public class DeleteBlocksCommandHandler implements
CommandHandler {
}
}
- private boolean isTxnIdValid(long containerId,
+ private void logDeleteTransaction(long containerId,
KeyValueContainerData containerData, DeletedBlocksTransaction delTX) {
- boolean b = true;
if (LOG.isDebugEnabled()) {
- LOG.debug("Processing Container : {}, DB path : {}", containerId,
- containerData.getMetadataPath());
+ LOG.debug("Processing Container : {}, DB path : {}, transaction {}",
+ containerId, containerData.getMetadataPath(), delTX.getTxID());
}
if (delTX.getTxID() <= containerData.getDeleteTransactionId()) {
- if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("Ignoring delete blocks for containerId: %d."
- + " Outdated delete transactionId %d < %d", containerId,
- delTX.getTxID(), containerData.getDeleteTransactionId()));
- }
- b = false;
+ LOG.info(String.format("Delete blocks for containerId: %d"
+ + " is either received out of order or retried,"
+ + " %d <= %d", containerId, delTX.getTxID(),
+ containerData.getDeleteTransactionId()));
}
- return b;
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]