摘要:笔记都是写给未来的自己看的。Cassandra为什么要有Compaction的机制Cassandra是BigTable的列族(Column Family)存储方式,这是一种非常灵活的存储模型,即使在同一个表中,不同的key也可以有不同的列,而且列不是对齐存储的,节省了空间。在Cassandra中,insert和update在底层都是追加的方式实现的,例如,数据key1对应column1,column2两列,要更新key1数据,更新内容为column2,c0lumn3。column1不变,column2更新,column是新加的。并且由于追加的方式,原数据和更新数据分别在两个sstable文件中
阅读全文
摘要:cassandra的优化工作,进入代码实现的阶段了。用eclipse导入cassandra的源码很方便,cassandra源码中的build.xml已经包含了所有需要的构建项,按照如下步骤进行即可:svn checkout https://svn.apache.org/repos/asf/cassandra/trunk cassandra进入Cassandra目录执行antavro-generate执行antgen-thrift-java执行ant generate-eclipse-filesok!然后打开eclipse import即可。
阅读全文
摘要:Cassandra自从出了几次大的宕机的情况之后,很少有大公司在用了,我目前知道的,就是twitter的抓取服务使用的Cassandra来存储抓取数据元信息,而且,国内某搜索引擎公司,也是这么做的。我最近的工作之一,就是改进Cassandra,选它一方面是公司的要求,另一方面,学习空间、提速空间性能都比较大。 经过一段时间的调研,确认了三个改进方向(由于公司的原因,现在我只说第一个)。第一个就是索引压缩的改进,往大了说,就是要对Cassandra的索引进行重新设计。重新设计的思路,下面会慢慢讨论。 对于kv存储引擎的索引,根据key是否有序,分为两种:一种是key如果无序,则可以采用hash的
阅读全文