Xushaohong commented on code in PR #3615:
URL: https://github.com/apache/ozone/pull/3615#discussion_r935524476
##########
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManagerImpl.java:
##########
@@ -209,6 +209,23 @@ public void increaseRetryCountOfTransactionInDB(
}
}
+ @Override
+ public int resetRetryCountOfTransactionInDB(ArrayList<Long> txIDs)
+ throws IOException {
+ for (long txId: txIDs) {
+ DeletedBlocksTransaction transaction = deletedTable.get(txId);
Review Comment:
@lokeshj1703 Actually, this action is buffered and only takes
effect(flushed) when SCM `take snapshot`, due to this uncontrollable flush
interval, such a case is inevitable.
For example:
user send cmd for the first time
user find RDB not take effect
buffer flushes
txn retry count increase from 0 to be 1 ( increment count action also will
be added into this buffer)
user send cmd for the second time
buffer flushes
For the whole process, txn retry count is -1 -> 0 -> 1 -> 0 . Even if we
add a check when getting this txn from DB and before adding the change into the
buffer, this case still could happen.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]