我在使用 Cassandra 时遇到了一个奇怪的问题。我的理解是 Cassandra 对于插入是可扩展的。这意味着如果我使用 2 个服务器的集群获得 1500 次写入/秒,我可以将其增加到 4 台服务器并接近 1500 次写入/秒。我知道 writes/s 可能不会随着集群中的节点数量线性增加,但我目前看到添加更多节点时 writes/s 的数量没有增加。
我目前的设置是这样的:
使用 Pycassa 批量插入,批量大小为 20 行。复制因子为 2 持久写入
一些 ColumnFamilies 有普通的列,一些有高达几十万列的宽列。具有宽列的 ColumnFamilies 的插入是分批插入的,而不是 100,000 列的 20 行。
cassandra 集群是托管在 EC2 中的 2 节点集群,使用 m1.xlarge 和 SSD 驱动器(无 raid),提交日志与 sstables 位于同一驱动器上。
我尝试将集群扩展到 10 多个节点,并且获得与 2 个节点相同的性能。我还尝试增加导入数据的实例数量,性能是相同的,只是每次写入操作的延迟要高得多。但无论我做什么,我都无法让写入速度超过 1500/s。