【问题标题】:Number of columns impact in cassandra?cassandra中的列数影响?
【发布时间】:2018-03-21 17:05:50
【问题描述】:

我在 Cassandra 表的每一行中有大约 200 列。
到目前为止,我有单节点集群。

当我使用 CPP datastax 驱动程序运行大约 100,000 条记录时,我每秒获得大约 3,500 次写入和每秒 30,000 次读取。但是,当我将所有列保存在 blob 类型的单个列中时,不包括 Cassandra 中的主键(分区键),我的性能以每秒 40,000 次写入和每秒 70,000 次读取的速度成倍增长。

列数会影响 Cassandra 中的性能吗?
此外,1 行的数据大小几乎没有 1kB。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    在反序列化和序列化数据以及跟踪不同列方面存在开销。在 3.0 之前的版本中,影响也更糟,存储了大量的冗余数据。它在 3.0 中要好得多,但如果您可以自己从 blob 进行反序列化并且在 db 中调试和统计能力有限,您将获得更好的性能。

    【讨论】:

    • 谢谢克里斯。因此,根据您的说法,随着列数的增加,cassandra 节点的延迟也会增加。另外,我想更正一下我对 100,000 行而不是 10,000 行执行的测试。
    • 反序列化需要多长时间取决于列的类型。不过应该很小。在没有看到您的代码的情况下,如果您将查询并行化,则有可能获得更接近的吞吐量,但如果您执行任何非异步或顺序的操作,那么无论多小都会增加请求的延迟会降低您的吞吐量(littles law)。我强烈建议您首先使用 cassandra-stress 测试您的数据模型,以排除对客户端的任何低效使用。每秒 3k 的写入速度非常慢,应该比读取速度快。
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2018-04-20
    • 2015-09-13
    • 1970-01-01
    • 2023-03-26
    • 2018-11-20
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多