Cassandra 会优化重复字符串的存储吗?

Does Cassandra Optimize Storage For Repeating Strings?

我们正在努力减少当前的磁盘使用量。在这样做的过程中,我们注意到我们存储的大部分信息主要是由在多个表和行中重复的相同字符串组成的元数据。

由于字符串往往比整数占用更多 space,我们认为可以用整数替换这些字符串以减少磁盘使用。我们这样做并注意到磁盘消耗上的差异很小。

我们仅在元数据字符串中存在较大差异时才注意到显着差异。 IE。琴弦变化更多。

所以现在我想知道 Cassandra 2.1 是否采用了一些巧妙的方法来存储重复信息,如果是这样,有人可以向我指出它是如何做到这一点的一些资源吗?我一直无法找到有关此事的任何信息。

谢谢。

Cassandra 从不混淆属于不同 table 的数据,因此如果您的字符串在多个 table 中重复,那么 C* 无法以任何方式混合优化它们。

唯一的问题是 C*(除非您禁用它)在 SSTable 刷新期间使用压缩。根据您设计 table 的方式,C* 将实现的压缩率会有很大差异。例如,压缩算法将从将字符串列作为聚类键中受益匪浅。并且 memtables 太小可能会影响每个 SSTable 的压缩率。