我有一个cassandra集群,它的行数相当少(大约200万行,我希望这对于cassandra来说是“小”的)。每一行都有一个惟一的UUID,每一行大约有200列(或多或少)。总而言之,这些都是非常小的行,没有二进制数据或大量的文本。只是一些短的字符串。
我刚刚完成了从旧数据库到cassandra集群的初始导入。我已经在每台机器上调好了cassandra的地狱。有数亿次写入,但没有读取。现在是时候使用这个东西了,我发现它的读取速度绝对令人沮丧。我正在使用pycassa做一个多目标,一次处理500到10000行。即使在500行的情况下,性能有时也很糟糕,只需要30+几秒钟。
什么会导致这种类型的行为?在像这样的大进口之后,你会推荐什么样的东西?谢谢。
发布于 2011-04-22 05:38:23
听起来你好像遇到了瓶颈。如果你的数据可以放在内存中,那么Cassandra在每个内核上的读取速度大约是4000次/秒。否则,你将会像其他任何东西一样被搜索到。
我注意到,通常情况下,“调优地狱”的系统是保留后,你开始在它的负载。:)
请参见:
发布于 2011-04-22 05:53:57
是否可以将多个get拆分成更小的块?通过这样做,您将能够将get分布在多个节点上,并通过在节点上分布负载和使用较小的数据包进行反序列化来潜在地提高性能。
这就引出了我的下一个问题,你的读取一致性设置为什么?除了@jbellis提到的IO瓶颈之外,如果您需要特别高级别的一致性,您还可能遇到网络流量问题。
https://stackoverflow.com/questions/5747220
复制相似问题