从“单数据节点”移动到“两个数据节点”cassandra集群时,Cassandra吞吐量下降

我有一个数据节点cassandra版本3.11.2和一个cassandra c驱动程序版本2.7 . 单数据节点集群具有500 000行 . 我读取异步然后将数据推送到队列,其中调度程序使用cassandra c驱动程序异步读取数据 . 我有10个应用程序线程10个io线程和10个调度线程 . 我得到了38000的TPS .

但我使用“TWO DATA NODE”cassandra集群所做的同样活动都位于同一个Rack上,并尝试以一致性级别“TWO”进行读写 . 我的TPS下降到12000.为什么即使所有配置和客户端二进制文件都相同,我的性能也会下降太多?只需将READ CONSISTENCY更改为TWO并将WREC CONSITENCY写入TWO .

我需要做些什么来获得大约40000的TPS . 我是否需要添加更多数据节点?

回答(1)

2 years ago

TWO 一致性级别意味着当您阅读时,您需要从两个节点获取数据,这会增加延迟 . 写入相同 - 当您使用 TWO 编写时,2个节点应确认数据已写入,这也会增加延迟...

我建议阅读DSE架构指南中的following section(更好地完整整个指南)以了解一致性级别 .