You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2023/06/20 07:58:00 UTC

[doris] branch master updated: [improvement](replica) donot care last failed version in publish (#21001)

This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new cb89af49e7 [improvement](replica) donot care last failed version in publish (#21001)
cb89af49e7 is described below

commit cb89af49e7556da8507c11c2103f11ea70223c0d
Author: Yongqiang YANG <98...@users.noreply.github.com>
AuthorDate: Tue Jun 20 15:57:54 2023 +0800

    [improvement](replica) donot care last failed version in publish (#21001)
    
    
    We just care 2 things:
    1. If the replica acks right
    2. If the replica catches up
---
 .../doris/transaction/DatabaseTransactionMgr.java  | 26 +++++++++-------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
index 5ac67993e4..eb69eab8b7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
@@ -938,19 +938,14 @@ public class DatabaseTransactionMgr {
                         for (Tablet tablet : index.getTablets()) {
                             int healthReplicaNum = 0;
                             for (Replica replica : tablet.getReplicas()) {
-                                if (replica.getLastFailedVersion() >= 0) {
-                                    LOG.info("publish version failed for transaction {} on tablet {},"
-                                             + " on replica {} due to lastFailedVersion >= 0",
-                                             transactionState, tablet, replica);
-                                    continue;
-                                }
                                 if (!errorReplicaIds.contains(replica.getId())) {
                                     if (replica.checkVersionCatchUp(partition.getVisibleVersion(), true)) {
                                         ++healthReplicaNum;
                                     } else {
-                                        LOG.info("publish version failed for transaction {} on tablet {},"
+                                        LOG.info("publish version {} failed for transaction {} on tablet {},"
                                                  + " on replica {} due to not catchup",
-                                                 transactionState, tablet, replica);
+                                                 partitionCommitInfo.getVersion(), transactionState, tablet,
+                                                 replica);
                                     }
                                 } else if (replica.getVersion() >= partitionCommitInfo.getVersion()) {
                                     // the replica's version is larger than or equal to current transaction
@@ -959,15 +954,17 @@ public class DatabaseTransactionMgr {
                                     errorReplicaIds.remove(replica.getId());
                                     ++healthReplicaNum;
                                 } else {
-                                    LOG.info("publish version failed for transaction {} on tablet {},"
-                                             + " on replica {} due to version hole", transactionState, tablet, replica);
+                                    LOG.info("publish version {} failed for transaction {} on tablet {},"
+                                             + " on replica {} due to version hole or error",
+                                             partitionCommitInfo.getVersion(), transactionState, tablet, replica);
                                 }
                             }
 
                             if (healthReplicaNum < quorumReplicaNum) {
-                                LOG.info("publish version failed for transaction {} on tablet {},"
+                                LOG.info("publish version {} failed for transaction {} on tablet {},"
                                                 + " with only {} replicas less than quorum {}",
-                                        transactionState, tablet, healthReplicaNum, quorumReplicaNum);
+                                         partitionCommitInfo.getVersion(), transactionState, tablet, healthReplicaNum,
+                                         quorumReplicaNum);
                                 String errMsg = String.format("publish on tablet %d failed."
                                                 + " succeed replica num %d less than quorum %d."
                                                 + " table: %d, partition: %d, publish version: %d",
@@ -1637,10 +1634,7 @@ public class DatabaseTransactionMgr {
                             long newVersion = newCommitVersion;
                             long lastSuccessVersion = replica.getLastSuccessVersion();
                             if (!errorReplicaIds.contains(replica.getId())) {
-                                if (replica.getLastFailedVersion() > 0) {
-                                    // if the replica is a failed replica, then not changing version
-                                    newVersion = replica.getVersion();
-                                } else if (!replica.checkVersionCatchUp(partition.getVisibleVersion(), true)) {
+                                if (!replica.checkVersionCatchUp(partition.getVisibleVersion(), true)) {
                                     // this means the replica has error in the past, but we did not observe it
                                     // during upgrade, one job maybe in quorum finished state, for example,
                                     // A,B,C 3 replica A,B 's version is 10, C's version is 10 but C' 10 is abnormal


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org