(RaftLog raftLog, Boolean result, boolean isMove)
| 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(); |
no test coverage detected