我有一个行数相当少的 cassandra 集群(大约 200 万行,我希望这对 cassandra 来说是“小”的)。每行都以唯一的 UUID 为键,每行大约有 200 列(给出或取一些)。总而言之,这些都是非常小的行,没有二进制数据或大量文本。只是短字符串。
我刚刚完成了从旧数据库到 cassandra 集群的初始导入。我在每台机器上都对 cassandra 进行了调教。有数亿次写入,但没有读取。现在是时候使用这个东西了,我发现读取速度绝对令人沮丧。我正在一次使用 pycassa 对 500 到 10000 行进行多重获取。即使在 500 行时,性能也很糟糕,有时需要 30 多秒。
什么会导致这种行为?在像这样大规模导入之后,您会推荐什么样的东西?谢谢。
最佳答案
听起来你是 io 瓶颈。如果您的数据适合 ram,则 Cassandra 每个核心每秒执行大约 4000 次读取。否则,您将像其他任何事情一样受到限制。
我注意到,通常系统中的“调优”是在您开始对其施加负载之后保留的。 :)
看:
关于Cassandra 多重获取性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5747220/