Cassandra 2.0吃磁盘空间

时间:2013-10-24 06:37:34

标签: cassandra

我在我的应用程序中使用cassandra它开始占用磁盘空间比我预期的要快得多,并且比手动中定义的要快得多。考虑这个最简单的例子:

CREATE TABLE sizer (
    id ascii,
    time timestamp,
    value float,
    PRIMARY KEY (id,time)
  ) WITH compression={'sstable_compression': ''}"

我正在关闭压缩,以查看每条记录需要多少字节。

然后我插入几个值,运行nodetool flush,然后检查磁盘上数据文件的大小,看看它占用了多少空间。

结果显示巨大的空间浪费。每条记录占用67个字节,我不确定这是怎么回事。

我的id是13个字节长,因为它只在数据文件中保存一次,因为它总是用于测试目的。

根据:http://www.datastax.com/documentation/cassandra/2.0/webhelp/index.html#cassandra/architecture/architecturePlanningUserData_t.html

大小应该是:

  • 时间戳应为8个字节
  • 值作为列名需要6个字节
  • 列值float需要4个字节
  • 列开销15字节
  • TOTAL:33个字节

为了测试,我的id总是一样的,所以如果我理解正确,我实际上只有一行。

所以,我的问题是如何最终使用67个字节而不是33个字节。

数据文件大小正确,我尝试插入100,1000和10000条记录。大小总是67个字节。

1 个答案:

答案 0 :(得分:2)

文件中讨论了3个开销。一个是您满足的列开销。第二个是行开销。而且如果你的replication_factor大于1,那么这也是一个问题。