This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch branch-4.16 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 82171ba198981695cf5ded4e5420716bfd3ce450 Author: Yan Zhao <[email protected]> AuthorDate: Thu Jan 11 05:50:48 2024 +0800 Improve auto-recovery noise log when some bookie down. (#4118) * Improve auto-recovery noise log when some bookie down. * Address comment. (cherry picked from commit 54168b5d6441f7cbe0b478867d8301a6eee0b891) --- .../client/RackawareEnsemblePlacementPolicyImpl.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java index 86a9d507fe..f71302e3d1 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java @@ -467,13 +467,26 @@ public class RackawareEnsemblePlacementPolicyImpl extends TopologyAwareEnsembleP try { excludeBookies = addDefaultRackBookiesIfMinNumRacksIsEnforced(excludeBookies); excludeBookies.addAll(currentEnsemble); + + Set<Node> ensembleNodes = new HashSet<>(); + Set<Node> excludeNodes = new HashSet<>(); BookieNode bn = knownBookies.get(bookieToReplace); if (null == bn) { bn = createBookieNode(bookieToReplace); } - - Set<Node> ensembleNodes = convertBookiesToNodes(currentEnsemble); - Set<Node> excludeNodes = convertBookiesToNodes(excludeBookies); + for (BookieId bookieId : currentEnsemble) { + if (bookieId.equals(bookieToReplace)) { + continue; + } + ensembleNodes.add(convertBookieToNode(bookieId)); + } + for (BookieId bookieId : excludeBookies) { + if (bookieId.equals(bookieToReplace)) { + excludeNodes.add(bn); + continue; + } + excludeNodes.add(convertBookieToNode(bookieId)); + } excludeNodes.addAll(ensembleNodes); excludeNodes.add(bn);
