【问题标题】:cassandra pelops weak performance on server than localcassandra 在服务器上的性能比本地性能差
【发布时间】:2011-10-12 14:07:26
【问题描述】:

m 使用 pelops 与 cassandra 交谈,我想知道当我尝试插入 1 GB 数据时,它在服务器上的性能比本地性能慢。我正在尝试一个批量插入,它是 m 在 mutator.writecolumn 中创建一个批处理2000 列并使用 mutator.execute m 插入 0.1 GB 的数据处理时间超过 25 分钟。我想知道是否有任何解决方案或者这是 cassandra 的正常性能?

已经创建了 3 个节点的集群。 卡桑德拉 7.4 佩洛普斯 节俭 0.5

感谢和问候 萨玛特

【问题讨论】:

    标签: java cassandra thrift batch-processing pelops


    【解决方案1】:

    您没有提供太多细节,但如果我猜的话,我会说您可能正在执行单线程插入,这意味着您仅限于

    【讨论】:

    • 不,我正在执行多线程插入,但在这两者之间我遇到了乱序异常或无法写入空输出流,知道为什么我要面对这个吗?
    • 听起来您正在使用来自多个线程的相同 Pelops 连接。您需要使用单独的连接对象。
    【解决方案2】:

    你的 write 参数是什么……嗯,我忘了术语 casandra sues。您可以向写入命令添加一个参数,该参数指定写入必须碰巧被视为“成功”的节点数。显然,如果您在本地运行,则参数liekly 为 1(我认为您可以在数据库的配置文件中设置),如果您有 3 个节点的集群,您可能已将其设置为 3 或 2。Ofc 需要更长的时间如果是这样,请编写并验证它是否已写入。

    【讨论】:

    • 不是这样,因为 Cassandra 总是在集群健康时写入所有副本。 ConsistencyLevel 更多的是关于“我需要多少副本才能继续运行。”
    • 是的,ofc!但这决定了您的“写调用”返回需要多长时间!因此,当您有一个只有 1 个节点的本地数据库时,您的写入调用可能需要 5 秒,但如果您要求一致性级别 3,那么对 3 个节点的集群的相同调用将需要 15 秒!!
    • 没错,它是并行完成的,我忘记了。然而,这比写一次要花更长的时间……你找到解决问题的可能方法了吗?也许它只是网络相关的?还是节点使用了未经批准的 JVM 启动参数(内存不足)?
    • 如果我使用多线程环境写入 cassandra 是否有任何问题。它会破坏套接字吗?m 失去顺序并且无法写入 cassandra 异常\
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2021-04-16
    • 2020-04-26
    • 2015-08-27
    • 2016-05-21
    • 2019-06-08
    • 1970-01-01
    相关资源
    最近更新 更多