【问题标题】:Does collections in CQL3 have certain limits?CQL3 中的集合是否有某些限制?
【发布时间】:2013-09-05 13:54:54
【问题描述】:

由于在 CQL3 中支持宽行有两种方法。一种是使用复合键,另一种是使用 Map、List 和 Set 等集合。复合键方法可以有数百万列(转置为行)。这解决了我们的一些用例。

但是,如果我们使用集合,我想知道集合可以存储一定数量/数量的数据是否存在限制(就像之前 Thrift C* 支持多达 20 亿列一样)

【问题讨论】:

  • 关于使用复合键的文档在哪里,因为我们在一个用例中需要数百万列?

标签: cassandra cql3


【解决方案1】:

强烈建议在集合和地图中仅存储有限数量的数据。

原因:

  1. 集合和地图是作为一个整体获取的,完全。你不能 对集合进行“切片”,以便将大量数据放入集合/地图中 阅读时会影响性能

  2. 列表的 CQL3 实现对 在列表中间插入/删除。对于追加/前置 操作,速度挺快的。用于索引处的插入/删除元素 i,它将需要先读后写。基本上,列表的一部分 将被重写,因为它们需要转移到好的索引

  3. Set 和 Map 的插入/删除性能更高,因为它们使用 存储/排序/索引的列键

现在回答你的问题,集合/地图中的元素数量是否有硬性限制,答案是没有,从技术上讲,除了已经存在的经典 20 亿限制之外,没有其他限制Thrift 是的,GlynD 上面提到的限制为 65536。

相关JIRACASSANDRA-5428

【讨论】:

  • CASSANDRA-5428 在 Cassandra >= 2.1 中在客户端使用本机协议 v3 连接时得到解决。在这些条件下,您的原始陈述是正确的,因为协议使用与底层存储层相同的大小限制(# cells / partition
【解决方案2】:

除了性能问题之外,还有一个协议问题,它限制了您可以访问的项目数量为 65536。

http://mail-archives.apache.org/mod_mbox/cassandra-user/201305.mbox/%3CCAENxBwx6pcSA=cWn=dKW_52K5odw5F3Xigj-zn_4BwFth+4ruA@mail.gmail.com%3E

【讨论】:

  • 有趣,我不知道协议将大小限制为 65536 的限制。感谢您提供信息
  • CASSANDRA-5428 当客户端使用本机协议 v3 连接时,在 Cassandra 2.1 中将此限制提高到 2B (2^31)。
【解决方案3】:

修改非冻结collection-related limits,在CASSANDRA-5428在版本2.1中被解决并且使用版本3或更高版本的本机协议时,是: ======+===========+=================+=============== = 类型 |尺码 | # 键 |价值大小 ======+===========+=================+=============== = 列表 | 2B (231) |不适用 | 65,535 (216-1) 设置 | 2B (231) |不适用 | 65,535 (216-1) 地图 | 2B (231) | 65,535 (216-1) | 65,535 (216-1) ======+===========+=================+=============== =

通过 Thrift 和早期版本的 C* 本机协议连接的客户端仍然受到这些相应传输的限制。

【讨论】:

    【解决方案4】:

    除了一个集合中64k个项目的限制,来自http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_collections_c.html:

    这些是两个限制:

    项目的最大尺寸限制为 64k(未分割短片的最大值)

    集合中的项目数限制为 64K(未分割短片的最大值)

    【讨论】:

      【解决方案5】:

      集合也是序列化的,所以这会增加开销。另请参阅 CASSANDRA-5428。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-05
        • 2014-01-16
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多