我正在尝试了解Cassandra限制,因为我们的Cassandra DB增长了。从“http://wiki.apache.org/cassandra/CassandraLimitations”读取,它表示单个分区中的最大单元数(行x列)为20亿。 。虽然“http://www.pcworld.idg.com.au/article/373483/new_cassandra_can_pack_two_billion_columns_into_row/”表示它可以连续包含20亿列。我的理解是一行不会被分成不同的分区。因此,这意味着分区必须能够容纳超过20亿个单元,这与第一篇文章形成鲜明对比。那么这个真正的限制是什么?
答案 0 :(得分:1)
这些文章令人困惑,因为他们为同一件事使用了两个不同的名字。
Cassandra列族中的任何给定行都可以存储多达20亿个列,同一列族中的下一行可能还有另外20亿个与前一行截然不同的列。
宽行肯定会拆分为磁盘上的单独SSTable文件,但它们不会通过网络进行分区。列按物理方式排序(按名称),并在磁盘上彼此相邻存储。
Cassandra的压缩过程的目的是将行和列族的SSTable文件分组为尽可能少的文件以保持最大性能,并且有不同的压缩选项可以提供更好的读取 - 写入 - 写入 - 重(默认)场景。