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

Method splitPutNext

ZezeJava/ZezeJava/src/main/java/Zeze/Dbh2/Dbh2.java:652–680  ·  view source on GitHub ↗
(boolean isMove, SplitPut r, RocksIterator it, long serialNo)

Source from the content-addressed store, hash-verified

650 }
651
652 public long splitPutNext(boolean isMove, SplitPut r, RocksIterator it, long serialNo) {
653 try {
654 var hasError = r.getResultCode() != 0;
655 if (!raft.isLeader() || dbh2Splitting == null || serialNo != splitSerialNo) {
656 it.close();
657 if (hasError)
658 startSplit(isMove);
659 return 0;
660 }
661
662 if (hasError) {
663 startSplit(isMove);
664 return 0;
665 }
666
667 var puts = buildSplitPut(it);
668 if (puts.Argument.getPuts().isEmpty()) {
669 it.close();
670
671 blockPrepareUntilNoTransaction(isMove);
672 return 0; // split done.
673 }
674
675 dbh2Splitting.getRaftAgent().send(puts, (p) -> splitPutNext(isMove, (SplitPut)p, it, serialNo));
676 } catch (Exception ex) {
677 logger.error("isMove={}", isMove, ex);
678 }
679 return 0;
680 }
681
682 private void blockPrepareUntilNoTransaction(boolean isMove) {
683 var meta = stateMachine.getBucket().getBucketMeta();

Callers 1

startSplitMethod · 0.95

Calls 10

startSplitMethod · 0.95
buildSplitPutMethod · 0.95
getRaftAgentMethod · 0.80
closeMethod · 0.65
isEmptyMethod · 0.65
sendMethod · 0.65
getResultCodeMethod · 0.45
isLeaderMethod · 0.45
getPutsMethod · 0.45

Tested by

no test coverage detected