Anyone with a pointer on this? Do transactions work reliably with Kafka perf 
test tools? If yes, then is there a way to make it work in this scenario?

Sincerely,
Anindya Haldar
Oracle Responsys


> On Oct 25, 2019, at 2:51 PM, Anindya Haldar <anindya.hal...@oracle.com> wrote:
> 
> We are evaluating Kafka for some of our use cases. As part of that effort I 
> am trying to run an experiment with a cluster we have set up, and using the 
> producer perf test tool supplied with the binaries. 
> 
> Here’s the cluster info:
> 
> Runs in Kubernetes, with 4 CPUs, 32 GB RAM, 100 GB log space allocation for 
> each node.
> 3 ZooKeeper nodes
> 5 Kafka nodes
> 
> Here is the topic description:
> 
> $ bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic 
> testtopic3
> Topic:testtopic3    PartitionCount:5    ReplicationFactor:3    
> Configs:min.insync.replicas=2,segment.bytes=1073741824,retention.ms 
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__slack-2Dredir.net_link-3Furl-3Dhttp-253A-252F-252Fretention.ms&d=DwIFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=vmJiAMDGSxNeZnFztNs5ITB_i_Z3h3VtLPGma9y7cKI&m=bcvrB2WHGYyMkDxuOiAX_kDm8dM_Gnhn9co-80eQpeM&s=d9QdJSgIZN7kFfuuRJDX3gi3J8Y7uTnC7UrLSFBdasI&e=
>  >=3600000,flush.messages=1,unclean.leader.election.enable=false
>    Topic: testtopic3    Partition: 0    Leader: 1    Replicas: 1,4,2    Isr: 
> 1,4,2
>    Topic: testtopic3    Partition: 1    Leader: 4    Replicas: 4,2,3    Isr: 
> 4,2,3
>    Topic: testtopic3    Partition: 2    Leader: 2    Replicas: 2,3,5    Isr: 
> 2,3,5
>    Topic: testtopic3    Partition: 3    Leader: 3    Replicas: 3,5,1    Isr: 
> 3,5,1
>    Topic: testtopic3    Partition: 4    Leader: 5    Replicas: 5,1,4    Isr: 
> 5,1,4
> 
> 
> 
> And here is the producer test run command line and the result:
> 
> $ bin/kafka-producer-perf-test.sh --topic testtopic3 --num-records 1000000 
> --throughput -1 --record-size 256 --producer-props 
> bootstrap.servers=kafka-a-0.ri:9092,kafka-b-0.ri:9092,kafka-c-0.ri:9092,kafka-d-0.ri:9092,kafka-e-0.ri:9092
>  acks=all batch.size=1 max.block.ms 
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__slack-2Dredir.net_link-3Furl-3Dhttp-253A-252F-252Fmax.block.ms&d=DwIFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=vmJiAMDGSxNeZnFztNs5ITB_i_Z3h3VtLPGma9y7cKI&m=bcvrB2WHGYyMkDxuOiAX_kDm8dM_Gnhn9co-80eQpeM&s=XP3cGgt3rD1lr8r0diTLpP4FP3BwZ8spcHNDNXc3i6I&e=
>  >=3600000 enable.idempotence=true max.in.flight.requests.per.connection=1 
> retries=3  --transaction-duration-ms 3600000
> 4100 records sent, 819.7 records/sec (0.20 MB/sec), 2572.0 ms avg latency, 
> 4892.0 ms max latency.
> 4261 records sent, 852.0 records/sec (0.21 MB/sec), 7397.2 ms avg latency, 
> 9873.0 ms max latency.
> 4216 records sent, 843.0 records/sec (0.21 MB/sec), 12383.7 ms avg latency, 
> 14849.0 ms max latency.
> 4400 records sent, 879.8 records/sec (0.21 MB/sec), 17332.0 ms avg latency, 
> 19784.0 ms max latency.
> 4354 records sent, 870.8 records/sec (0.21 MB/sec), 22349.4 ms avg latency, 
> 24763.0 ms max latency.
> 4477 records sent, 895.4 records/sec (0.22 MB/sec), 27241.1 ms avg latency, 
> 29728.0 ms max latency.
> 4366 records sent, 873.2 records/sec (0.21 MB/sec), 32218.3 ms avg latency, 
> 34703.0 ms max latency.
> 4408 records sent, 881.6 records/sec (0.22 MB/sec), 37190.6 ms avg latency, 
> 39672.0 ms max latency.
> 4159 records sent, 831.5 records/sec (0.20 MB/sec), 42135.0 ms avg latency, 
> 44640.0 ms max latency.
> 4260 records sent, 852.0 records/sec (0.21 MB/sec), 47098.0 ms avg latency, 
> 49624.0 ms max latency.
> 4360 records sent, 872.0 records/sec (0.21 MB/sec), 52137.1 ms avg latency, 
> 54574.0 ms max latency.
> 4514 records sent, 902.8 records/sec (0.22 MB/sec), 57038.1 ms avg latency, 
> 59554.0 ms max latency.
> 4273 records sent, 854.3 records/sec (0.21 MB/sec), 62001.8 ms avg latency, 
> 64524.0 ms max latency.
> 4348 records sent, 869.6 records/sec (0.21 MB/sec), 67037.8 ms avg latency, 
> 69494.0 ms max latency.
> 4039 records sent, 807.5 records/sec (0.20 MB/sec), 72009.8 ms avg latency, 
> 74481.0 ms max latency.
> 4327 records sent, 865.2 records/sec (0.21 MB/sec), 76993.8 ms avg latency, 
> 79457.0 ms max latency.
> 4307 records sent, 861.4 records/sec (0.21 MB/sec), 82011.9 ms avg latency, 
> 84449.0 ms max latency.
> 4506 records sent, 901.0 records/sec (0.22 MB/sec), 86922.6 ms avg latency, 
> 89434.0 ms max latency.
> 4343 records sent, 868.6 records/sec (0.21 MB/sec), 91918.8 ms avg latency, 
> 94394.0 ms max latency.
> org.apache.kafka.common.errors.ProducerFencedException: Producer attempted an 
> operation with an old epoch. Either there is a newer producer with the same 
> transactionalId, or the producer's transaction has been expired by the broker.
> Exception in thread "main" org.apache.kafka.common.KafkaException: Cannot 
> perform send because at least one previous transactional or idempotent 
> request has failed with errors.
>    at 
> org.apache.kafka.clients.producer.internals.TransactionManager.failIfNotReadyForSend(TransactionManager.java:357)
>    at 
> org.apache.kafka.clients.producer.internals.TransactionManager.maybeAddPartitionToTransaction(TransactionManager.java:341)
>    at 
> org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:915)
>    at 
> org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:856)
>    at 
> org.apache.kafka.tools.ProducerPerformance.main(ProducerPerformance.java:143)
> Caused by: org.apache.kafka.common.errors.ProducerFencedException: Producer 
> attempted an operation with an old epoch. Either there is a newer producer 
> with the same transactionalId, or the producer's transaction has been expired 
> by the broker.
> [2019-10-25 21:15:05,183] ERROR [Producer clientId=producer-1, 
> transactionalId=performance-producer-default-transactional-id] Aborting 
> producer batches due to fatal error 
> (org.apache.kafka.clients.producer.internals.Sender)
> org.apache.kafka.common.errors.ProducerFencedException: Producer attempted an 
> operation with an old epoch. Either there is a newer producer with the same 
> transactionalId, or the producer's transaction has been expired by the broker.
> 
> It does not make any difference whether I add a transaction id flag like 
> ‘—transactional-id mytxn’ to the command line. 
> 
> Is there something I am missing here?
> 
> Sincerely,
> Anindya Haldar
> Oracle Responsys
> 

Reply via email to