We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the following test into TestRackawareEnsemblePlacementPolicy.java can reproduce the issue.
TestRackawareEnsemblePlacementPolicy.java
@Test public void testNewEnsemblePolicyWithMultipleRacks() throws Exception { BookieSocketAddress addr1 = new BookieSocketAddress("127.0.0.1", 3181); BookieSocketAddress addr2 = new BookieSocketAddress("127.0.0.2", 3181); BookieSocketAddress addr3 = new BookieSocketAddress("127.0.0.3", 3181); BookieSocketAddress addr4 = new BookieSocketAddress("127.0.0.4", 3181); BookieSocketAddress addr5 = new BookieSocketAddress("127.0.0.5", 3181); // update dns mapping StaticDNSResolver.addNodeToRack(addr1.getHostName(), "/default-region/r1"); StaticDNSResolver.addNodeToRack(addr2.getHostName(), "/default-region/r1"); StaticDNSResolver.addNodeToRack(addr3.getHostName(), "/default-region/r2"); StaticDNSResolver.addNodeToRack(addr4.getHostName(), "/default-region/r3"); //StaticDNSResolver.addNodeToRack(addr5.getHostName(), "/default-region/r1"); // Update cluster Set<BookieId> addrs = new HashSet<BookieId>(); addrs.add(addr1.toBookieId()); addrs.add(addr2.toBookieId()); addrs.add(addr3.toBookieId()); //addrs.add(addr5.toBookieId()); addrs.add(addr4.toBookieId()); repp.onClusterChanged(addrs, new HashSet<BookieId>()); try { int ensembleSize = 3; int writeQuorumSize = 3; int ackQuorumSize = 2; Set<BookieId> excludeBookies = new HashSet<>(); //excludeBookies.add(addr4.toBookieId()); //excludeBookies.add(addr3.toBookieId()); for (int i = 0; i < 50; ++i) { EnsemblePlacementPolicy.PlacementResult<List<BookieId>> ensembleResponse = repp.newEnsemble(ensembleSize, writeQuorumSize, ackQuorumSize, null, excludeBookies); List<BookieId> ensemble = ensembleResponse.getResult(); if (ensemble.contains(addr1.toBookieId()) && ensemble.contains(addr2.toBookieId())) { LOG.error("The same ensemble."); ensemble.forEach(t -> { LOG.info("[hangc] {}", t); }); } LOG.info("=========="); } } catch (Exception e ){ LOG.error("failed ", e); } }
The text was updated successfully, but these errors were encountered:
I will solve it.
Sorry, something went wrong.
No branches or pull requests
Describe
Add the following test into
TestRackawareEnsemblePlacementPolicy.java
can reproduce the issue.The text was updated successfully, but these errors were encountered: