Github user ajantha-bhat commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2672#discussion_r214314587
--- Diff:
hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonTableOutputFormat.java
---
@@ -460,27 +461,29 @@ public CarbonLoadModel getLoadModel() {
private CarbonOutputIteratorWrapper[] iterators;
- private int counter;
+ private AtomicLong counter;
CarbonMultiRecordWriter(CarbonOutputIteratorWrapper[] iterators,
DataLoadExecutor dataLoadExecutor, CarbonLoadModel loadModel,
Future future,
ExecutorService executorService) {
super(null, dataLoadExecutor, loadModel, future, executorService);
this.iterators = iterators;
+ counter = new AtomicLong(0);
}
- @Override public synchronized void write(NullWritable aVoid,
ObjectArrayWritable objects)
+ @Override public void write(NullWritable aVoid, ObjectArrayWritable
objects)
throws InterruptedException {
- iterators[counter].write(objects.get());
- if (++counter == iterators.length) {
- //round robin reset
- counter = 0;
+ int hash = (int) (counter.incrementAndGet() % iterators.length);
--- End diff --
done
---