DomGarguilo commented on code in PR #3415:
URL: https://github.com/apache/accumulo/pull/3415#discussion_r1204502900
##########
test/src/main/java/org/apache/accumulo/test/functional/SplitIT.java:
##########
@@ -205,4 +219,79 @@ public void deleteSplit() throws Exception {
}
}
+ @Test
+ public void concurrentSplit() throws Exception {
+ try (AccumuloClient c =
Accumulo.newClient().from(getClientProps()).build()) {
+
+ final String tableName = getUniqueNames(1)[0];
+
+ log.debug("Creating table {}", tableName);
+ c.tableOperations().create(tableName);
+
+ final int numRows = 100_000;
+ log.debug("Ingesting {} rows into {}", numRows, tableName);
+ VerifyParams params = new VerifyParams(getClientProps(), tableName,
numRows);
+ TestIngest.ingest(c, params);
+
+ log.debug("Verifying {} rows ingested into {}", numRows, tableName);
+ VerifyIngest.verifyIngest(c, params);
+
+ log.debug("Creating futures that add random splits to the table");
+ ExecutorService es = Executors.newFixedThreadPool(10);
+ final int totalFutures = 100;
+ final int splitsPerFuture = 4;
+ final Set<Text> totalSplits = new HashSet<>();
+ List<Callable<Void>> tasks = new ArrayList<>(totalFutures);
+ for (int i = 0; i < totalFutures; i++) {
+ final Pair<Integer,Integer> splitBounds =
getRandomSplitBounds(numRows);
+ final TreeSet<Text> splits =
TestIngest.getSplitPoints(splitBounds.getFirst().longValue(),
Review Comment:
There may be other solutions but the two i thought of are:
1. check to make sure the difference is greater than zero in the method,
else throw an exception
2. if the difference is not greater than 0, return an empty TreeSet
@keith-turner, I don't see one option as being clearly the better choice
than the other. Do you have an opinion or another possible solution?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]