balmukundblr commented on a change in pull request #2345: URL: https://github.com/apache/lucene-solr/pull/2345#discussion_r587723043
########## File path: lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/ReutersContentSource.java ########## @@ -102,19 +104,43 @@ public void close() throws IOException { public DocData getNextDocData(DocData docData) throws NoMoreDataException, IOException { Path f = null; String name = null; - synchronized (this) { - if (nextFile >= inputFiles.size()) { - // exhausted files, start a new round, unless forever set to false. - if (!forever) { - throw new NoMoreDataException(); - } - nextFile = 0; - iteration++; - } - f = inputFiles.get(nextFile++); - name = f.toRealPath() + "_" + iteration; + int inputFilesSize = inputFiles.size(); + + /* + * synchronized (this) { + * if (nextFile >= inputFiles.size()) { // exhausted files, start a new round, unless forever set to false. + * if (!forever) { + * throw new NoMoreDataException(); + * } + * nextFile = 0; + * iteration++; + * } + * f = inputFiles.get(nextFile++); + * name = f.toRealPath() + "_" +iteration; + * } + */ + if (!threadIndexCreated) { + createThreadIndex(); + } + + int index = (int) Thread.currentThread().getId() % threadIndex.length; + int fIndex = index + threadIndex[index] * threadIndex.length; + threadIndex[index]++; Review comment: Although, getId() is controlled by JVM but in our case, all threadIndex are getting initialized at once. Hence, there is high chance of getting guaranteed sequence of thread id, as we also observed. However, we understand your concern and tweaked our code in such a way that it guaranteed to reach every possible int from 0 .. threadIndex.length. We achieved it by setting a unique thread name and parsing the same for calculating the index value. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org