I did Temporal and Cadence performance comparison testing, and I saw different patterns between them. Please give me some advice to understand the result.
If you need more information to analyze the result, let me know, please.
[Test environment]
3 hosts
OS version: CentOS 8.5.2111
Cassandra version: 3.11.12-1
Elasticsearch version: 7.17.1
Temporal-server version: 1.15.2
Cadence-server version: 0.23.1
Kafka/zookeeper for Cadence
12 workers (4 workers per host)
[Temporal/Cadence configuration]
Number of history shards: 100
Enable advanced visibility
history,matching,worker.persistenceMaxQPS: 20000
[Test method]
Create 1000, 5000, 8000 cron workflows that will be triggered for each minute.
Mesure the workflow latency (end time - execution time)
[Test result]
Average latency is similar between them.
But Temporal’s maximum latency was long rather than Cadence. there was a long tail in the Temporal result.
[Test data]
Note that the vertical axis of the 5k and 1k chart is log-scale. (not 8k)
According to my mem, at least the default configs for task queue partition are different (if your worker poller count is not large enough, this config can affect latency):
@Wenquan_Xing Thank you for your comment.
I changed the number of task queue partitions to 1, and the result has been changed that is almost similar to Cadence.