Skip to content

Commit

Permalink
[Enhancement] Optimize quorum publish, wait some time util all backen…
Browse files Browse the repository at this point in the history
…ds finish
  • Loading branch information
meegoo authored and chaoyli committed May 19, 2022
1 parent 6925939 commit 3115820
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
6 changes: 6 additions & 0 deletions fe/fe-core/src/main/java/com/starrocks/common/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -1376,4 +1376,10 @@ public class Config extends ConfigBase {
*/
@ConfField(mutable = true)
public static long min_routine_load_lag_for_metrics = 10000;

/**
* after wait quorom_publish_wait_time_ms, will do quorum publish
*/
@ConfField(mutable = true)
public static int quorom_publish_wait_time_ms = 500;
}
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,7 @@ public boolean canTxnFinished(TransactionState txn, Set<Long> errReplicas, Set<L
return true;
}
db.readLock();

long currentTs = System.currentTimeMillis();
try {
// check each table involved in transaction
for (TableCommitInfo tableCommitInfo : txn.getIdToTableCommitInfos().values()) {
Expand All @@ -670,6 +670,7 @@ public boolean canTxnFinished(TransactionState txn, Set<Long> errReplicas, Set<L

List<MaterializedIndex> allIndices = txn.getPartitionLoadedTblIndexes(tableId, partition);
int quorumNum = partitionInfo.getQuorumNum(partitionId);
int replicaNum = partitionInfo.getReplicationNum(partitionId);
for (MaterializedIndex index : allIndices) {
for (Tablet tablet : index.getTablets()) {
int successHealthyReplicaNum = 0;
Expand Down Expand Up @@ -705,6 +706,15 @@ public boolean canTxnFinished(TransactionState txn, Set<Long> errReplicas, Set<L
if (successHealthyReplicaNum < quorumNum) {
return false;
}
// quorum publish will make table unstable
// so that we wait quorom_publish_wait_time_ms util all backend publish finish
// before quorum publish
if (successHealthyReplicaNum != replicaNum
&& !unfinishedBackends.isEmpty()
&& currentTs
- txn.getCommitTime() < Config.quorom_publish_wait_time_ms) {
return false;
}
}
}
}
Expand Down

0 comments on commit 3115820

Please sign in to comment.