GitHub user ggevay opened a pull request: https://github.com/apache/flink/pull/5041
[FLINK-8117] [runtime] [streaming] Eliminate modulo operation from round robin partitioners ## What is the purpose of the change This PR changes `RebalancePartitioner`, `RescalePartitioner`, and `RoundRobinChannelSelector` to not use `%` for wrapping around when reaching the number of channels, but use an `if`-statement instead. ## Brief change log - Make the above change in `RebalancePartitioner`, `RescalePartitioner`, and `RoundRobinChannelSelector` - Additionally, I added `final` to the field that is holding the reused return array in `RebalancePartitioner`, `RoundRobinChannelSelector`, `ShufflePartitioner`, `ForwardPartitioner`, `GlobalPartitioner`, `CustomPartitionerWrapper`. ## Verifying this change This change is already covered by existing tests, such as `RebalancePartitionerTest`, `RescalePartitionerTest`. ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): no - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: no - The serializers: no - The runtime per-record code paths (performance sensitive): **yes** - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no - The S3 file system connector: no ## Documentation - Does this pull request introduce a new feature? no - If yes, how is the feature documented? not applicable You can merge this pull request into a Git repository by running: $ git pull https://github.com/ggevay/flink round-robin-no-modulo Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5041.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5041 ---- commit 04ff7134e3e5fc750b6f94a385a3ff3bfd921fa3 Author: Gabor Gevay <gga...@gmail.com> Date: 2017-11-20T14:12:17Z [FLINK-8117] [runtime] [streaming] Eliminate modulo operation from round-robin partitioners ---- ---