为我的英语提前道歉。
我是Cassandra和他的数据模型的初学者。我尝试在一个节点上的本地cassandra数据库中插入一百万行。每行有10列,我只在一个列族中插入这些列。
使用一个线程,该操作大约需要3分钟。但是我想用两百万行做同样的操作,并且保持良好的时间。然后我试着用两个线程插入两百万行,预计大约3-4分钟会得到类似的结果。在第一个结果中,我得到了7min...twice这样的结果。当我在不同的论坛上查看时,建议使用多线程来提高性能。这就是为什么我要问这个问题:使用多线程在本地节点(客户机和服务器在同一台计算机上)中只插入一个列族中数据是否有用?
一些信息:-我使用pycassa -我在不同的磁盘上分离了提交日志存储库和数据存储库-我对每个线程使用批插入-一致性级别:1-复制器因子:1
发布于 2011-05-10 21:33:18
你有可能遇到了python GIL,但更有可能的是你做错了什么。
例如,在单个批次中放置2M行将是错误的。
发布于 2011-05-11 05:11:08
尝试在多个进程中运行多个客户端,而不是线程。
然后尝试不同的插入尺寸。
在3分钟内1M插入大约是5500次插入/秒,这对于单个本地客户端来说是相当好的。在多核机器上,如果您使用多个客户端,您应该能够获得数倍于此数量的内存,可能会插入小批量的行或单独的行。
发布于 2011-05-21 08:05:33
你可以考虑Redis。它的单节点吞吐量应该更快。它不同于Cassandra,所以它是否是一个合适的选项取决于您的用例。
https://stackoverflow.com/questions/5950427
复制相似问题