2009年4月18日星期六

多线程、Project Darkstar、MapReduce和GAE

通过提高主频来提升性能的时代结束了,我们一下子就被扔进了多核、集群的时代。程序员可以分成两种:1.会分布式并行编程的;2、不会分布式并行编程的

有人声称,继OO之后,程序员下一项需要掌握的技术就是多线程技术。但是我预计,短时间不会有大量程序员掌握多线程编程,就像短时间学不会OO技术一样。

IT业界从来不缺聪明的人,他们已经设计了各自的解决方案。让不懂分布式并行编程的人享受到分布式并行的好处,就像让不懂OO的人享受到OO的好处一样。

Beautiful Architecture”一书的第3章介绍了Project Darkstar,它为多玩家在线游戏和虚拟世界这样的系统设计了一种架构,使得游戏程序员不需要掌握分布式并行程序设计技术。

代码之美》一书的第23章介绍了Google的MapReduce设计,实现了分而治之的古老策略,体现了任务/分布式并行计算的关注点分离。

GAE不让你启动自己的线程,所有自己会启动线程的jar包都不能跑在GAE上。伸缩性和并发由底层基础设施来实现。

我们需要重新考虑一下应用的架构方式了。如何才能够跑在GAE这台巨大的虚拟机上?