google的那个三件套(mapreduce, bigtable, gfs)现在已经很流行了,相应的开源项目也是层出不穷,其中以hadoop最出名。不过大部分的项目都是基于java实现的,对于我这个java门外汉并不能有太大帮助。hypertable是为数不多的基于C++的项目,它的参照物是bigtable,而且还是百度赞助的哦。
本着支持国货的精神,俺把它的代码down下来了,今天只看了个readme。
其实readme中的信息也不少的,包括了所有相关的依赖库:
Berkeley DB: 应该是用它来做底层的存储和本机数据的index;
Boost: 其实我挺意外的,竟然用到了boost,不知道具体用的是什么模块,正则吗;
log4cpp: 用来写日志的;
sigar: 查了一下,是个monitor,基于java的。很奇怪他们没用ganglia;
expat: 解析xml的,可能是处理配置文件用吧;
readline: 用于人机交互的;
ncurses: 应该也是用做交互的;
zlib: 用于数据压缩;
libevent: 应该是用来处理网络IO的;
thrift: 前面看到expat,还以为远程通信是传递xml呢,现在看来,是用thrift来实现消息传递和RPC。顺带在网上搜到了一个thrift和protocolbuffer的比较 http://blog.csdn.net/socoolfj/archive/2009/01/30/3855007.aspx ;
推荐使用的库包括了:
tcmalloc: 好东西;
sparsehash: 查了一下,是google发布的一个高效的hash table库;
cronolog: 和日志相关;