如何从cassandra或hbase中提取leveldb类型的数据存储(sstable + memtable)?

时间:2012-05-25 14:37:07

标签: open-source cassandra hbase bigdata leveldb

LevelDB是Google非常有趣的C ++数据存储。我在Java世界中寻找类似的东西(坦率地说,我可以更好地理解代码,更容易在Windows上运行等等。)

我理解Hbase和Cassandra也包含相同的基本技术:sstable用于文件存储,memtable用于内存存储(在它被分类并写入磁盘之前),某种压缩,定期压缩等等。

是否有任何努力从较大的项目中提取此技术?我自己开始查看代码库(主要是Cassandra),但这些显然不是简单的项目。哪个项目有更多模块化代码?

期待任何指针!

1 个答案:

答案 0 :(得分:0)

似乎不太可能有一些通用的,非平凡的模块,你可以提取这3个商店的共同点。你是对的,这些想法非常相似,但实现(存储文件格式,内存中表示,压缩,协调服务等)足够复杂,试图在3个不同的项目之间共享代码会使事情变得更多复杂,而不是更少。

在Cassandra和HBase之间,从某种意义上说,后者有更多的模块化代码,因为它将其大部分功能委托给其他层(HDFS,Zookeeper),而在Cassandra中,这些都是在项目内部处理的。但即使在HBase中,这部分(物理存储格式,压缩算法等)也与整个系统耦合,而不是分层。

如果您正在寻找支持不同存储引擎的架构,或者想要了解如何处理分布式系统中的分层的不同愿景,请查看Riak(它确实支持LevelDB)它的存储层选项):

http://wiki.basho.com/LevelDB.html