[ https://issues.apache.org/jira/browse/KAFKA-2092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14584688#comment-14584688 ]
ASF GitHub Bot commented on KAFKA-2092: --------------------------------------- GitHub user gdfm opened a pull request: https://github.com/apache/kafka/pull/69 KAFKA-2092: New partitioning for better load balancing You can merge this pull request into a Git repository by running: $ git pull https://github.com/gdfm/kafka KAFKA-2092 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/69.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 #69 ---- commit ceaf4e3d4488e677ca584eca59d8d25ccb137f02 Author: Gianmarco De Francisci Morales <g...@apache.org> Date: 2015-06-13T15:59:15Z Add PKG partitioner for load balancing ---- > New partitioning for better load balancing > ------------------------------------------ > > Key: KAFKA-2092 > URL: https://issues.apache.org/jira/browse/KAFKA-2092 > Project: Kafka > Issue Type: Improvement > Components: producer > Reporter: Gianmarco De Francisci Morales > Assignee: Jun Rao > Attachments: KAFKA-2092-v1.patch > > > We have recently studied the problem of load balancing in distributed stream > processing systems such as Samza [1]. > In particular, we focused on what happens when the key distribution of the > stream is skewed when using key grouping. > We developed a new stream partitioning scheme (which we call Partial Key > Grouping). It achieves better load balancing than hashing while being more > scalable than round robin in terms of memory. > In the paper we show a number of mining algorithms that are easy to implement > with partial key grouping, and whose performance can benefit from it. We > think that it might also be useful for a larger class of algorithms. > PKG has already been integrated in Storm [2], and I would like to be able to > use it in Samza as well. As far as I understand, Kafka producers are the ones > that decide how to partition the stream (or Kafka topic). > I do not have experience with Kafka, however partial key grouping is very > easy to implement: it requires just a few lines of code in Java when > implemented as a custom grouping in Storm [3]. > I believe it should be very easy to integrate. > For all these reasons, I believe it will be a nice addition to Kafka/Samza. > If the community thinks it's a good idea, I will be happy to offer support in > the porting. > References: > [1] > https://melmeric.files.wordpress.com/2014/11/the-power-of-both-choices-practical-load-balancing-for-distributed-stream-processing-engines.pdf > [2] https://issues.apache.org/jira/browse/STORM-632 > [3] https://github.com/gdfm/partial-key-grouping -- This message was sent by Atlassian JIRA (v6.3.4#6332)