Cassandra 多重获取性能

标签 cassandra pycassa

我有一个行数相当少的 cassandra 集群(大约 200 万行,我希望这对 cassandra 来说是“小”的)。每行都以唯一的 UUID 为键,每行大约有 200 列(给出或取一些)。总而言之,这些都是非常小的行,没有二进制数据或大量文本。只是短字符串。

我刚刚完成了从旧数据库到 cassandra 集群的初始导入。我在每台机器上都对 cassandra 进行了调教。有数亿次写入,但没有读取。现在是时候使用这个东西了,我发现读取速度绝对令人沮丧。我正在一次使用 pycassa 对 500 到 10000 行进行多重获取。即使在 500 行时,性能也很糟糕,有时需要 30 多秒。

什么会导致这种行为?在像这样大规模导入之后,您会推荐什么样的东西?谢谢。

最佳答案

听起来你是 io 瓶颈。如果您的数据适合 ram,则 Cassandra 每个核心每秒执行大约 4000 次读取。否则,您将像其他任何事情一样受到限制。

我注意到,通常系统中的“调优”是在您开始对其施加负载之后保留的。 :)

看:

  • http://spyced.blogspot.com/2010/01/linux-performance-basics.html
  • http://www.datastax.com/docs/0.7/operations/cache_tuning
  • 关于Cassandra 多重获取性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5747220/

    相关文章:

    Hadoop 和 Cassandra 集成如何

    java - Cassandra 新手 - SliceQuery 给出错误没有足够的字节来读取组件 0 的值

    python - pycassa TypeError : A str or unicode, 无法插入 cassandra

    python - cassandra 创建和使用索引 [pycassa]

    python - Pycassa,线程池, "Exception in thread Thread-3 (most likely raised during interpreter shutdown):"

    performance - 为什么 Cassandra 二级索引仅在 350k 行上就这么慢?

    concurrency - 在 Cassandra 中使用轻量级事务 (CAS) 时,如何避免丢失写入?

    Cassandra 节点所有权为 0.00%

    node.js - 可读流和回调函数

    cassandra - 更新 cassandra 中的 TimeUUID 列