Google开源了一个kv存储的库leveldb,从提交的代码和contributor名单来看,毫无疑问,就是bigtable论文描述的tablet的实现。也就是我们常说的LSMTree的一个实现。http://code.google.com/p/leveldb/ 那LSMTree是什么呢? http://www.douban.com/group/topic/19607128/ The Log-Structured Merge-Tree (LSM-Tree) http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.2782&;rep=rep1&type=pdf 这篇文章读起来感觉有难度,细节太多。它介绍了 LSM-Tree 这种算法思想。这种算法思想主要用于解决日志记录索引的问题。这种应用的特点是数据量大、写速率高(2000条/s),又要建立有效的索引来查找日志中的特定条目。 采用 B+ 树索引,因为数据量大,每次又是随机的写到一个 page 中,导致无法进行有效的 page 缓存,每次写基本上对应两次 I/O,因此不可行。 解决思路就是把写操作延迟和批处理化。具体的做法就是写一个条目的时候先写到内存中的数据结构中,然后批量的 merge 到磁盘中的数据结构中。但是内存中的数据结构和磁盘中的数据结构具体是怎么样的,论文中只做了简要的描述。 Cassandra 中采用类似的思想,只是采用的数据结构是 SSTable,和论文中说的不一样。
Browsing the archives for the Google tag
技术爱好者大多都知道 Google 是使用 Linux 的大户,但是一直以来对于他们如何使用 Linux 却知之甚少,甚至内核开发社区对 Google 内部使用的情况也了解不多。LWN 上的这篇 How Google uses Linux 给我们带来了不少信息。 Google 使用 Linux 肯定有很多令人震惊的地方,第一个令人"惊讶"的是他们使用的代码管理工具:Perforce 。代码维护方式看起来也比较落后,当前维护的代码版本远远落后于开源社区内核版本,因为 Google 自己要维护大量的内部特性,每一个大版本发布周期是大约 18 个月,而内部特性的回归也要折腾6个月。因为版本滞后,所以有不少向后移植(Backporting)的工作要做,这个比例大约是 25%,还是不小的。
北京时间4月2日上午消息,据国外媒体报道,作为全球最大的搜索引擎,谷歌拥有拥有数量众多、规模庞大的服务器系统,但外界却知之甚少。周三,谷歌首次公开了其服务器设计的神秘面纱。
大多数企业都是从戴尔、惠普、IBM或Sun购买服务器系统,而谷歌的服务器系统却是自己设计的。谷歌服务器最令人意外的是,每台服务器都配有12V的备用电池。当主电源发生意外时,电池可以继续供电。
网站的网址结构应尽可能简单些。 请考虑组织您的内容,让网址的构建合乎逻辑并易于理解(尽可能采用易读字词而非长的 ID 数字)。 例如,如果您要搜索有关航空 (aviation) 的信息,http://en.wikipedia.org/wiki/Aviation 一类的网址将会有助于您决定是否点击该链接。 http://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1 一类的网址对用户的吸引力大大降低。