浅谈高端通信系统中一些分布式理论基础(2)
作者 陈怀临 | 2011-09-05 18:17 | 类型 科技普及 | 22条用户评论 »
系列目录 浅谈高端通信系统中一些分布式理论基础
分布式通信系统,互联网分布式系统[现在为了骗人,都喜欢叫做云计算]在经典的分布式计算这个领域到底是个什么宝宝? 这个问题要回答的清楚,不容易,即使是Andrew T来也得想一想。 同学们可以这样这样来思考。 分布式系统是一个非常笼统和虚的概念。类似与;为人民服务。或者我们就是代表人民利益的。爱我们就是爱人民。 谁是人民?看不见摸不着的。 分布式系统可以在两个层面来划分:分布式应用系统和分布式操作系统(或者分布式计算环境)。 学术圈的人一说分布式系统,通常谈的是分布式操作系统或者分布式计算环境;工业界的人说的往往是前者。 学术界的分布式操作系统基本上没啥大意思了。从Andrew T对Distributed System的定义来说,分布式系统其实就是一个乌托邦,强调在OS Level的Resource的Transparency。类似与某某主义,只要不是傻子,都知道,那是不可能的。 那么学术界的叫兽们玩什么呢? 玩分布式并行计算系统(Distributed Parallel Computing)。 这个”分布式并行计算“的术语是很有讲究的: 这里面目的是:并行计算;手段是:分布式处理。或者Semi-分布式处理。 而经典的分布式计算是:一切为了资源的透明性。类似于:你去东莞玩。一个晚上3百;每个小姐小费3百。但是妈眯说:你别管哪个小姐了;我替你挑选一个;你给个参数,我替你match就好了。估计谁都不愿意这种服务。至少现在都是:一排人上来,:我来自大宋某某地;我来自大宋某某地。。。 换言之,完全的资源透明性是没有意思的,也是做不到的。不看看小姐的面再挑选,是没有愿意花钱的。。。 分布式资源透明性的分布式操作系统的研究就是这样end的。 叫兽们都发现:这个世界需要的是在semi-distributed computing下的parallel computing。分布式是一个手段;并行计算才是目的。 在理解分布式和并行计算方面,需要深刻理解下面两个statement *不需要分布式计算,也可以做并行计算。例如MPP
那么为什么说工业界说的分布式系统其实是在说分布式应用系统呢? 道理很简单。这个世界上就不存在分布式操作系统。剩下的当然就是分布式应用系统了。 分布式应用系统的底层支撑就是分布式并行系统。 但到了应用的层面上,并行变成了Implicitly了。不可见了。 因此,就称为分布式系统了。 事情就是这么的简单。。。 总之,计算的本质是为了并行;只有应用才能看见分布的透明。 | |
雁过留声
“浅谈高端通信系统中一些分布式理论基础(2)”有22个回复
分布式计算肯定都是分布式应用系统,都是把任务分解成小任务后部署到各个独立的计算系统上去运算。分布式计算、网格计算、云计算等可以归为一类,但虚拟化又跟这类不同,如果虚拟化能把分布的计算单元虚拟成一台超级计算机,然后再为每个任务分配计算资源,那么虚拟化可以当成一个分布式操作系统。
个人浅见,分布式就是大家伙儿一起来把一个事情给完成了,这个大家伙儿的内部管理可以是p2p形式的,也可以是层次化管理的。
用首席的话,就是爷你只管提要求,您想同时享受北方的狂野和南方的温柔,咱这里面小姐很多,肯定能给您满足了,具体是男小姐还是女小姐为您服务的,您就别操心了,妈咪给您安排好了
不仅仅是妈眯安排好了,而且是不可见(知)的。整完后,你都不知道是谁整的。都在屏风后面--分布式透明性。
不成熟
首席江湖阅历资深,weconnect小菜必成功,小米不行:)
个人不太喜欢首席过于白话的写作方式, 我觉得把知识讲得通俗易懂即可, 没必要整那么多乱七八糟的词汇,什么“叫兽”啊之类的。
还有就是能不能写中文文章时,别老是莫名其妙的拽上一些英文单词,别扭啊。
我很想从首席的文章中吸取知识,所以才忍不住说这些,请见谅。
首席生活经验丰富
阿鹏,我这个人比较喜欢开玩笑,其实人还是不错的。。。
分布式应用系统感觉还是相当大的范畴,是否只要不是由一台服务器搞定一个事情都可以称为分布式应用系统呢?而该系列所定标题中的“高端通信系统”可是吊足众人的胃口呀。
我这才(2)呢。。。最后当然要写到通信上去呀。。。
文章比代码难写。特别是还要写的白话文。我对自己的要求还特别高。一定要拿好的例子来比喻。。。还是很有挑战性的。
与首席商榷:
1、资源透明性是为了减轻应用编程的复杂性,难道在SMP系统上编程要应用指定是哪个CPU、哪个Cache为你服务吗?存取分布式数据库要指定数据在哪个存储卷上吗?不过系统设计总是个权衡的过程,如果资源的透明性代价很高,那就需要应用能够订制一些规则,完全由应用实现的分布特性也只有性能是第一要素的封闭系统内可以,一个开放、可部署第三方应用的OS+中间件系统上,你让应用自己实现分布特性,估计没几个人会用。
2、Distributed OS的确是个乌托邦,系统本来就是分层设计的,OS管好本地资源,Distributed Middleware实现分布式特性,应用编程尽量本地化,这才是王道。如果非得说Middleware也是应用我也没办法。
3、分布式系统不仅仅是并行,也有交互和同步,你让每个应用参与资源的管理就需要自己实现ACID特性,那就等同于让每个人都重新发明轮子?
4、分布式系统模式有RESTful也有Stateful的,复杂度各不相同,转发设备的分布式处理,报文与报文之间几无关联,算是比较简单的了。有像MPI、PVM、CORBA、COM、TIPC、Mapreduce这样以计算为中心的,也有以DHT、Parallel Database这样以数据为中心的,但归根结底要解决数据的分布式处理。
russellw还是比较牛叉。。。这些问题都是好问题。留给同学们上班时间,查查文献,展开阅读和思考。。。
要想高性能,就必须非常清楚底层资源的实现和管理方式,才能把他们的能力压榨到最狠,此时如果OS限制了你对他们的压榨,就像工厂里的工会,你怎么办?要么改造这个OS或者middleware,要么尽量bare metal。这在高端通信,也就是一定要有高性能的通讯系统里,是一定要搞一搞的。
但另外一个角度,对底层的考虑越多,就越影响应用软件的开发效率,如何对性能和开发效率做trading-off,这个拿捏和把握,仅靠理论就太不够了,这种事情是体现MB、BL、首席等真正功力的地方,没法玩虚的,玩了虚的,产品还没上市就得回炉,很惨
真的不存在分布式操作系统吗?听说过MOSIX吗?MOSIX可以把多台服务器虚拟成一台,是VMWARE的逆向应用,我觉得MOSIX可以算是Distributed OS的雏形。可惜被摩尔定律扼杀了。
首席,有没有考虑过 将一堆基站的FLASH 弄一起,整一个分布式文件系统. 该怎么整? 靠谱吗?
这个idea带有革命性。首先应该去先专利。我不是开玩笑。。。技术上是靠谱的。基站的虚拟化。我的God呀。确实比较牛。[但商务上我就不知道了]。
准确的说,应该是基带池资源的聚合,中移动已在推类似的解决方案了
移动带宽需求因为smart terminal而迅速增加,但关键瓶颈在空口,包括频谱资源,所以如何最大化利用频谱,在热点和非热点间就有文章可做
17楼说的是中移的C-RAN,算是Software Defined Radio的进一步发展,把基带软件无线电部分全部集中起来用DSP或CPU集群进行处理。
总结这样更好些:
分布的本质是为了并行计算。
贤弟说的对。我来改成这样。更精确了。
分布式系统是一个非常笼统和虚的概念。类似与;为人民服务。或者我们就是代表人民利益的。爱我们就是爱人民。
这个比喻很经典啊