高可用高性能系统(十二)处理粒度

C/S架构中,最常见的就是请求->处理->应答。高可用高性能系统的架构设计中,对这块有一定要求,而且是很重要的要求。如果一个请求很容易被接管转发,那么就能很方便地设计分布式计算,或者负载均衡。所以,我们在这块架构设计中,希望对请求进行一定地设计,减少请求之间的依赖,同时保证请求和应答之间足够快速。这样就能够提高并行度。所以,处理粒度就成了很重要的因素。

在GOOGLE的一篇MAPREDUCE论文中,通过map分解计算以及reduce归纳计算结果,来实现高性能计算,实际上也是为了降低处理粒度,提高并行度。在apache的hadoop项目中,我们可以看到对这个理论的实现。象搜索引擎这样的系统中,他的存储量极其巨大,但内容却相对固定。系统很容易对目标进行划分成多个区,然后并行处理。这点和P2P还是很相似的。文件被分割成很多小片,然后从不同的对端获取。每次获取小片的时间较小,即使被中断,也很容易得到恢复。所以,对处理粒度的分割是很关键的一个部分,避免处理粒度过于庞大,对于 构建高可用高性能系统是很重要的。

对于一个动态内容来说,象P2P和搜索引擎那个的结构显然是不够的。我们回到应用场景期货交易所的期货行情,显然无法固定划分,但如果从时间上进行切片,却是可以的。当然,也只能应用在某些应用场景中,不一定具有普适性。

 

在很多高性能实现中,进程迁移的时候,往往要迁移很多内容,包括堆栈。事实上他将整个进程拷贝另外一个机器。在纯数值计算时,问题不大,但如果涉及到资源时,很难处理,比如文件。如果我们将这个处理过程细化成更小的粒度,比如文件处理。我们在一个文件处理中,可以将文件某个片段的处理过程分为一个处理粒度,那么迁移这个进程实际上问题就不但,最后复制的内存区稍微大了点,而不需要迁移更多的内容,比如堆栈。这种机制对集群或者分布式计算都是很大改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值