From c6505dd609eceae247a9187a6f86affbeefe61a4 Mon Sep 17 00:00:00 2001 From: chenhang Date: Tue, 14 Feb 2023 11:05:54 +0800 Subject: [PATCH 1/5] add logs for ensemble select failed --- .../bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 2db47e17c41..37d71ef5f91 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 @@ -675,6 +675,8 @@ protected BookieNode selectRandomFromRack(String netPath, Set excludeBooki } return bn; } + LOG.warn("Failed to select bookie node from path: {}, leaves: {}, exclude Bookies: {}, ensemble: {}", + netPath, leaves, excludeBookies, ensemble); throw new BKNotEnoughBookiesException(); } From 374b8b00d55a63768b77e43ab4c199eb650c8f08 Mon Sep 17 00:00:00 2001 From: chenhang Date: Sat, 18 Feb 2023 09:43:07 +0800 Subject: [PATCH 2/5] address comments --- .../client/RackawareEnsemblePlacementPolicyImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 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 37d71ef5f91..d6f813e835f 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 @@ -519,9 +519,9 @@ public BookieNode selectFromNetworkLocation( networkLoc, excludeBookies); throw e; } - LOG.warn("Failed to choose a bookie from {} : " - + "excluded {}, fallback to choose bookie randomly from the cluster.", - networkLoc, excludeBookies); + LOG.warn("Failed to choose a bookie from {} : leaves {}, excluded {}, " + + "current ensemble {}, fallback to choose bookie randomly from the cluster.", + networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); // randomly choose one from whole cluster, ignore the provided predicate. return selectRandom(1, excludeBookies, predicate, ensemble).get(0); } @@ -544,6 +544,9 @@ public BookieNode selectFromNetworkLocation(String networkLoc, * the whole cluster and exclude the racks specified at * excludeRacks. */ + LOG.info("Failed to choose a bookie node from {} : leaves {}, exclude Bookies {}, " + + "current ensemble {}, fallback to choose bookie randomly from the cluster.", + networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); return selectFromNetworkLocation(excludeRacks, excludeBookies, predicate, ensemble, fallbackToRandom); } } @@ -675,8 +678,6 @@ protected BookieNode selectRandomFromRack(String netPath, Set excludeBooki } return bn; } - LOG.warn("Failed to select bookie node from path: {}, leaves: {}, exclude Bookies: {}, ensemble: {}", - netPath, leaves, excludeBookies, ensemble); throw new BKNotEnoughBookiesException(); } From a4dda6d390849a3cf06bb004ae5c814ac2e0eb5a Mon Sep 17 00:00:00 2001 From: chenhang Date: Sat, 18 Feb 2023 09:44:26 +0800 Subject: [PATCH 3/5] format code --- .../bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d6f813e835f..8e900b568f3 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 @@ -519,7 +519,7 @@ public BookieNode selectFromNetworkLocation( networkLoc, excludeBookies); throw e; } - LOG.warn("Failed to choose a bookie from {} : leaves {}, excluded {}, " + LOG.warn("Failed to choose a bookie from {} : leaves {}, excluded bookies {}, " + "current ensemble {}, fallback to choose bookie randomly from the cluster.", networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); // randomly choose one from whole cluster, ignore the provided predicate. From 75aad86427a9c94befbfbb73414f1ecabc6d2757 Mon Sep 17 00:00:00 2001 From: chenhang Date: Sat, 18 Feb 2023 09:47:57 +0800 Subject: [PATCH 4/5] change log level --- .../bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8e900b568f3..cd90756fd0b 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 @@ -544,7 +544,7 @@ public BookieNode selectFromNetworkLocation(String networkLoc, * the whole cluster and exclude the racks specified at * excludeRacks. */ - LOG.info("Failed to choose a bookie node from {} : leaves {}, exclude Bookies {}, " + LOG.warn("Failed to choose a bookie node from {} : leaves {}, exclude Bookies {}, " + "current ensemble {}, fallback to choose bookie randomly from the cluster.", networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); return selectFromNetworkLocation(excludeRacks, excludeBookies, predicate, ensemble, fallbackToRandom); From 2f224754df3849f58af53c665037ed474f8ef1c8 Mon Sep 17 00:00:00 2001 From: chenhang Date: Sat, 18 Feb 2023 22:58:08 +0800 Subject: [PATCH 5/5] update log information --- .../client/RackawareEnsemblePlacementPolicyImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 cd90756fd0b..77a794b3a1f 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 @@ -519,7 +519,8 @@ public BookieNode selectFromNetworkLocation( networkLoc, excludeBookies); throw e; } - LOG.warn("Failed to choose a bookie from {} : leaves {}, excluded bookies {}, " + LOG.warn("Failed to choose a bookie from network location {}, " + + "the bookies in the network location are {}, excluded bookies {}, " + "current ensemble {}, fallback to choose bookie randomly from the cluster.", networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); // randomly choose one from whole cluster, ignore the provided predicate. @@ -544,7 +545,8 @@ public BookieNode selectFromNetworkLocation(String networkLoc, * the whole cluster and exclude the racks specified at * excludeRacks. */ - LOG.warn("Failed to choose a bookie node from {} : leaves {}, exclude Bookies {}, " + LOG.warn("Failed to choose a bookie node from network location {}, " + + "the bookies in the network location are {}, excluded bookies {}, " + "current ensemble {}, fallback to choose bookie randomly from the cluster.", networkLoc, topology.getLeaves(networkLoc), excludeBookies, ensemble); return selectFromNetworkLocation(excludeRacks, excludeBookies, predicate, ensemble, fallbackToRandom);