If I understand correctly there is only one consumer object created per task, how would the setting of partition.assignment.strategy help here ?
Thanks, Nitin On Sun, Sep 20, 2020 at 10:37 PM Ning Zhang <ning2008w...@gmail.com> wrote: > Here my initial thoughts: > > (1) MM2 assigned partitions over tasks based on round-robin at the MM2 > application level: > > > https://github.com/apache/kafka/commit/4fe324b5a696d47ae8414cf030ae36b83a2cf163#diff-bf03ad7a93c070fe11fcf88f897e0973 > > (2) if want to try out `RoundRobinAssignor` in consumer-level, the right > config format should be: > <source_cluster_alias>.consumer.partition.assignment.strategy > > (3) if the workload is static, increasing the number of MM2 instance will > definitely decrease the throughput per machine. There are multiple layers > to optimize: (1) if the k8s containers running MM2 are under-provisioned in > terms of network bandwidth, memory and etc. (2) JVM and GC, (3) MM2 > consumer and producer configs. I published a basic MM2 config for k8s > deployment (for my experiments): > https://github.com/ning2008wisc/minikube-mm2-demo/blob/high_scale/kafka-mm/values.yaml > and it could be a starting point for tuning. > > On 2020/09/16 08:01:19, Iftach Ben-Yosef <iben-yo...@outbrain.com> wrote: > > Hello, > > > > Following our experimenting with MM2, we seem to have a hard time > > recovering from lags created by increased traffic. > > > > Since we're running MM2 on kubernetes, we can easily add more > > resources/instances to our MM2 cluster, which should in theory increase > the > > clusters performance and allow us to eliminate accumulated lag faster. > > > > In practice, we see that increasing the number of MM2 instances we have > > does not drastically change the throughput per machine - newly created > > instances have much lower throughput than instances which existed before > > the increase. > > > > This made me think about the partition assignment strategy used by MM2. > If > > I understand correctly, the default seems to be > > partition.assignment.strategy = [class > > org.apache.kafka.clients.consumer.RangeAssignor] > > > > I believe changing this to round robin might help this? I tried setting > it > > up in my /config/connect-mirror-maker.properties file as one of each of > the > > following (assuming source / dest A / B respectively) > > > > > A.consumer.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > > B.consumer.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > > A.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > > B.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > > partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > > consumer.partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor > > None of these seem to work. Am I doing it wrong? Is this setting even > > applicable to MM2? > > > > Thanks a lot, > > Iftach > > > > -- > > The above terms reflect a potential business arrangement, are provided > > solely as a basis for further discussion, and are not intended to be and > do > > not constitute a legally binding obligation. No legally binding > obligations > > will be created, implied, or inferred until an agreement in final form > is > > executed in writing by all parties involved. > > > > > > This email and any > > attachments hereto may be confidential or privileged. If you received > this > > communication by mistake, please don't forward it to anyone else, please > > erase all copies and attachments, and please let me know that it has > gone > > to the wrong person. Thanks. > > >