西西河

主题:从曾经的Android组成员的角度来说说Android吧 -- zllwy

共:💬137 🌺380
全看分页树展 · 主题 跟帖
家园 同好

我对map backend真的一点都不知道啊。

说来好笑,自从离开Google以后,对Google的技术反而越来越有兴趣。可惜现在都只能从公开信息去学了。最近在研究分布式存储方面的东西。Google的Spanner大家都听说了吧(看Jeff Dean的talk: http://www.stanford.edu/class/ee380/Abstracts/101110.html),bigtable的后继。有一个细节是(公开的信息),Google越来越多的使用strong consistency的replication,看App engine最近新推出的datastore就知道了。其中最重要的一个算法就是Paxos算法,这是唯一一个被证明了理论上正确的consensus algorithm。很多系统都有自己一套的replication算法,但其实都是一些经验性的,没有理论上的基础,在很多情况下不能正确地保证Consensus。Paxos最初在Google的chubby里面用。现在看来扩展到bigtable replication了。不知道spanner是不是已经可以用了。说起Paxos还是很有意思的。以前分布式系统里面consensus都是用2-stage commit或者3-stage commit。虽然很直观,其实不能处理所有的情况。就这么个看起来很简单的问题,一直到80年代的时候,Leslie Lamport(理论大牛,在微软),写了一篇考古文章,发掘出公元1000年的时候,有一个希腊的小岛上的城市国家的议会用了一个算法解决了他们在法令上达成一致意见的问题。而这个方法,正好解决了异步分布式系统中达成一致的问题。本来Lamport可以用学术界通常的文笔写这个问题的,不过为了轻松气氛,他仿照byzantine failure的那篇文章,以考古的手法描述这个问题,只在文章的最后一笔带过和分布式系统的关系。他把文章投了一个著名的杂志,结果被退稿了,编辑说你把考古那部分去掉吧。看来不是所有人都有幽默感的。大牛就是大牛,不发就不发呗。他就把文章锁抽屉里了。不过文章还是在学术界私下传开了。很多年以后,90年代中期吧,微软一个人写了篇文章解释了Lamport的算法,讨论了证明和如何使用。这下这个算法终于火了,大家意识到这是唯一理论上正确的算法。这下Lamport的那篇考古文一字不改地发表了。然后一直到2001年,Lamport终于受不了了,写了一篇Paxos made simple,说看来我的前一篇文章大家看着像希腊文写的,那我就简单地描述一下吧。Google的Chubby可能是第一个大规模在production system里面使用这个算法的。现在Hadoop的zookeeper也是类似的,不过他们不是严格的paxos算法,我不知道是否还是paxos的一种,以及理论上是否正确。

扯远了。说正经的。Google的backend的确是非常重视scalability的。在这方面做了大量的研究和实践。要是能把这套系统推广开去,应该会很有意义。Hadoop在这个方面有很大贡献。你说到对经验和架构的兴趣,这个得具体谈了。随便说几个,不知道对不对。

1 分布式存储/数据库。基本上就是摆脱传统的database model,所谓的NoSQL潮流。具体到技术就是Bigtable和GFS。

2 和存储相适应的就是map/reduce。

3 分布式协调。就是chubby distributed lock service。Chubby用得很广泛。

4 Stateless application logic。所有的app(特殊的除外)都是stateless的。随demand的变化可以增加减少instances。

5 Load balancing

这里一下也说不清。有兴趣私下聊吧。给我发站内信交换联系方式。

通宝推:唐家山,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河