MCPcopy Create free account
hub / github.com/e2wugui/zeze / endSplit2

Method endSplit2

ZezeJava/ZezeJava/src/main/java/Zeze/Dbh2/Dbh2.java:743–777  ·  view source on GitHub ↗
(RaftLog raftLog, Boolean result, boolean isMove)

Source from the content-addressed store, hash-verified

741 }
742
743 private void endSplit2(RaftLog raftLog, Boolean result, boolean isMove) {
744 if (!result) {
745 try {
746 startSplit(isMove);
747 } catch (Exception e) {
748 logger.error("isMove={}", isMove, e);
749 }
750 return;
751 }
752
753 // 【此时进入拒绝模式】
754 // 【此时进入拒绝模式】
755 // 【此时进入拒绝模式】
756 var server = (Dbh2RaftServer)getRaft().getServer();
757 performPrepareQueue(server.takePrepareQueue());
758
759 // 关闭到新桶连接。
760 try {
761 dbh2Splitting.close();
762 } catch (Exception ex) {
763 logger.error("", ex);
764 }
765 dbh2Splitting = null;
766
767 var meta = stateMachine.getBucket().getBucketMeta();
768 if (isMove) {
769 var endMove = (LogEndMove)raftLog.getLog();
770 manager.getMasterAgent().endMoveWithRetryAsync(endMove.getTo());
771 } else {
772 // 可以安全的发布新旧桶的信息到Master了。
773 var endSplit = (LogEndSplit)raftLog.getLog();
774 manager.getMasterAgent().endSplitWithRetryAsync(endSplit.getFrom(), endSplit.getTo());
775 }
776 logger.info("splitting end done. isMove={} {}", isMove, formatMeta(meta));
777 }
778
779 public void onCommitBatch(Dbh2Transaction txn) {
780 var splittingMeta = stateMachine.getBucket().getSplittingMeta();

Callers 1

endSplit1Method · 0.95

Calls 15

startSplitMethod · 0.95
getRaftMethod · 0.95
performPrepareQueueMethod · 0.95
formatMetaMethod · 0.95
getServerMethod · 0.80
takePrepareQueueMethod · 0.80
getBucketMetaMethod · 0.80
getBucketMethod · 0.80
endMoveWithRetryAsyncMethod · 0.80
closeMethod · 0.65
getLogMethod · 0.65

Tested by

no test coverage detected