新浪云计算丛磊:NoSQL在SAE中的应用

作者: 来源:未知 2012-03-05 16:30:17 阅读 我要评论 直达商品

另外还要支持secondary index,还有要支持认证。最后一定要支持重平衡,随着时间运转系统内势必不均衡,有的节点弱,有的节点冷,有的磁盘占用空间比较满,有的磁盘占用空间比较空,势必要有一个重新平衡,重新利用机器的过程,这个特性也是我们一定需要的。我们来看一下KVDB的架构图,其实这个架构推有点像,大体上有点像GLS,Client在发起一个绘画的时候,都会从Meta上取一个东西,我影射到哪个,拿到一个信息之后,就会根据Meta Server进行读写操作,数据流传输跟后端存储节点去进行,有主有从可以进行同步。

Meta Server并不是一个,而是一组机器。那么Meta Server如何保持影射之间的一致性?我们采用的方式就是变种的一致性,当某一个Meta Server出现一定时间,他自己肯定知道出现一段时间没有跟后端进行同步成功,这时候会发起一个操作,把自己下线,就是把自己服务端口给封掉。这里有一个风险,后端挂掉是不是会导致所有的Meta Server都挂掉了全部下线,这样导致服务不可用的。我们在这块假如协议,我能不能自己把自己给宕了,如果能就宕了,如果不能就继续提供服务,这样保证即使出现故障的时候,仍然保持有二分之一的机器能够服务。当一个系统里面,我们主要处理两个纬度。

这种逻辑很简单,缺乏一个很有理论高度平衡,SAE怎么来做这个事,基于一个数学理论,实际上就两个概念,第一个概念叫数学期望,第二就军方差。我们以磁盘利用率为例子,比如现在所有系统里面磁盘利用率,数学期望是50%的话,这个时候表示什么呢?就表示我们所有系统里面磁盘大概利用率,基本上都是属于一半。军方差表什么意思?是所有系统磁盘里面有效率,或者说利用率,离50%的偏差程度。换句话说,我们怎么来判断重平衡,如果我这个系统里边,不管你以什么指标为准,如果军方差很小,数学期望很高,这时候做的不是平衡而是扩容。反过来如果系统里面数学期望很小,军方差很高,就表示你所有点离中心离散度已经非常高了,这时候做的不是扩容,而是重平衡。

所以,我们以这个为方式就设立一个SAE上用来重平衡的概念,当然我们这个公式不是这么简单,因为时间关系不多说了。重平衡如果做无缝迁移?我们从客户端来写,从A迁到B,以写B端成功为主。从A去读,也人觉得你写到A,再写到B,如果A没有成功,会不会读不出来,这可能会发生这就是我们一个他想保证一个最终一致性,这个暂时可能读不出来,但是一定会读出来。

这是KVDB使用的一些问题,不多说了,还有一个服务。下面介绍一下Rank,排行榜,这个排行榜服务应用场景就是有这种,比如游戏网站,游戏下载周排行,月排行都会用到。Rank,第一个需求是top rank,我往里面放一些东西,我希望是最大的,比如top100 top1000,还有一个all rank,我要知道在里面每一个排行,我玩游戏想知道分数最高100个用户是谁,这叫top rank,还有我给你一个用户,告诉我在FaceBook用户里面用户排名是多少,这就是all rank,这块今天不讨论了。

目前主要解决是top rank的问题,all rank也在开发。实际上这个Rank服务还是比较简单,到后端主从,实际上一个Rank配一个ERBT,他一部分是key到一个value,还有如何从rank而去查value,关键如何从value去查Rank,这块也可以通过扩展,不仅仅包括服务节点,红黑部分,还包括所有子节点数,通过这个信息我们就可以通过topn来得到,就像我这个表里所说到,PPT可以下载,大家回去看。

那么Rank可靠性如何来保证?首先是一个in-memory master slave sync,因为从事任何时刻热备才能够顶替主的服务。另外他会每隔2分钟,1分钟把自己的数据,变化的数据宕到硬盘上。主从之间我们bin-log,这是一个问题。比如我主跟从互相in-memory,比如从突然宕机24个小时,这时候从要起来追主所有数据,这时候怎么来做,我们每次去同步的时候都去对比主从之间这个表的值,如果发现这个不一样就去统计这一小块的数字,这就减少主从之间量,虽然表面上是一个全部,实际上量会得到一个控制。

NoSQL还有一个Counter应用场景。从SAE来讲,对于开发者如何来选型SAE的NoSQL首先是速度,其次像容量,可靠性。我们反过来看容量,肯定是有限制的,虽然SAE是动态去扩容量,今天是10兆明天不够变成20兆,200兆,一个T就是可以,但是有一个上限,超过一个上限往里放,容量最大KVDB,可以限往里面去放,MySQL也比较大,目前支持512个表,每个表里面最多1千万条记录。可靠性上来讲,很显然MySQL占第一位,甚至会考虑WLAN的方式部署数据,反过来MySQL数据是最低的,一旦出现问题你不可恢复,需要从其他数据里面重新加入。

最后是SAE,在SAE官方微博有招聘信息,大家就兴趣可以加入SAE。如果大家对今天演讲内容有问题可以在微博上与我进行沟通,谢谢大家。


  推荐阅读

  百度杨栋:HCE助MapReduce提升资源利用率

时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信、金融等行业,几乎已经到了“数据就是业务本身”的地步。这种趋势已经让很多相信数据之力量的企业做出改变。恰逢此时,为了让更多的人了解和使>>>详细阅读


本文标题:新浪云计算丛磊:NoSQL在SAE中的应用

地址:http://www.lgo100.com/a/kandian/20120305/36930.html

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
我的评论: 人参与评论
验证码: 匿名回答
网友评论(点击查看更多条评论)
友情提示: 登录后发表评论,可以直接从评论中的用户名进入您的个人空间,让更多网友认识您。
自媒体专栏

评论

热度