丛磊:好象一般IT互联网公司还没有招NoSQL的职位,更多项目是利用到NoSQL的知识。其实我的观点跟志丰差不多,首先这个人看他的需要,实际上NoSQL分成两层,一个是比较高一点,涉及到分布式一些理论,第一点也不是说这个低,不是层次低,更多涉及到本地存储的东西,很重要硬件,我觉得从传统硬件将来这个存储引擎一定会发生变化,包括Google最新出的一个,一定会有超越传统搜索引擎的数据库出现来代替以前的方法,从高层来讲基本上被亚马逊(微博),Google几家都包了,去学习理论的时候,大家一般提到理论就是CAP,可以划成两个放心,一个是扩展性,还有一个就是复制,从这方面更好理解一些。
主持人程显峰:现在如果大家用NoSQL的话,可能大家已经讨论过整个开发成本相对风险要小一些,主要的成本,或者说他的风险可能体现在他的部署,和集成上面,部署这个问题,现在好的NoSQL解决相对好一些,还有自动化的水平扩展,包括分片,集群,热备这些都稍微好一点,我请大家谈一谈关于集成这块,他怎么与我们现有的业务结合起来。比如说有KVDB,他在这个过程中,我希望大家多谈一谈,因为你们都有实战经验,多谈一谈血泪教训,不能我们来了之后看到大家都是光鲜一面,你们把血泪都掩藏在自己内心深处,搞的没有彩头了。
李祎:我做NoSQL的时候确实有很多血泪史,第一个版本出来的查询特别慢,跟踪一下原因,因为有些用户他大的用户关系的时候,因为我们前面是一个相当于有些大用户,比如你是赵薇,你有好几百万粉丝,这时候这个数据,一开始没做二级缓存,相当于赵薇数据每次有一个用户在查的时候,会来来回回倒腾好几次,那时候基本上那个系统不可用了,后面我们要进行分片,比如说大用户粉丝列表做了一些分片,分片之后,数量受到限制,比如前5千个,或者日期限制,今天的,做了这样一些限制之后,我们在算一些分组的时候效率就会更高一点,这也是我们用NoSQL的时候,经常会预见的一个问题,当你的对象很大的时候,你怎么去控制他,本来是想提高IO的,反而变成相反的了。
丛磊:对于这块NoSQL和业务整合我从云计算的角度来说,怎么利用云计算整合。我这块只有一个经验,这个经验是从亚马逊来的,不要试图去改变用户的使用习惯,不要试图教用户这些东西,用户不会学,我所知道几乎90%以上 开发者他们对NoSQL很小,这应该有公有云自己的平台去解决。
杨志丰:因为你做的还是一个NoSQL,我是一个底层系统,对上边开发人员当然接口最简单,所以从我们这边的角度来看,现在希望刚才那样一个系统打包称一个解决方案,比如现在一个很火的接口我们就可以进行打包,让上手容易一些。另外从经验的角度来看,负载均衡比较重要,刚才说双十一的时候,我们最开始遇到的问题有一个地方,要做负载均衡,只要算法上有问题,就会把一些问题变成热点,你上面应用是什么样子的,需要你上面负载均衡不一样的。
主持人程显峰:高度运营相关的?
杨志丰:对,策略是不一样的。另外第三个,我是在一个公司内部做底层系统的,别人是做底层系统上边的应用系统,我们经验就是说,我们是帮着他们一起去做,比如说我们会从开发人员里面挑几个人和应用的人坐在一起,我就是来帮助你一起做,在系统开发初期,因为你的系统,刚开始的时候可运维性很差,可能有各种各样的稳定性问题,这样的问题你直接暴露给用户的话,他们是解决不了的。另外你可能由于你接口涉及很烂,别人用起来很烦琐,总是在不断在发展,初期的时候据我所知Google他们最早那套平台他们也是手把手去教应用,这个查询应该怎么去做,那个查询应该怎么去做,不应该写那样一个语句在里面,这样就把服务争取服务好。
主持人程显峰:还有强烈支持在后面,如果有这个品牌以后,还需要给客户强烈的支持?
杨志丰:对,我觉得那个MySQL接口就很好,很清楚,不容易用错,但像一个数据库的东西,如果你的SQL,因为SQL的表达能力太强了,很容易就弄错了。
主持人程显峰:如果一个东西很灵活,写的又很烂的话,客服人员一定挺忙的。
巨建华:刚才谈的这个主题是血泪史,如果想避免血泪史最好选择稳定的产品,我们一开始在选择1.4的产品遇到很多问题。比如说,当时一个表,一个集合,当时你可以用任意的名字去创建,如果你用一个大写的名字建立一个集合之后,打算再建立一个小写的名称直接退出也不会出现错误,在这种情况下很神奇,可能有人在写程序的时候没有把大小写注意到,跑了一段时间程序崩溃了,我们甚至想看都看不到。很久之后我们找到那个问题,把相应的bug去官网上做一些问题,很快就修复了,如果在正式运行的系统上发生这样问题,你会很痛苦的。
因为我们一开始用在不是很关键的产品上,DBI对这个也很不熟不是太关注。当有一天我们发现我们广告点击顶过来的日志特别多,发现已经把虚拟内存耗掉非常多,我们打算增加节点,基本上没有办法把那个很安全的进行平衡转移。最后解决方案,我们把那个议程慢慢移数据,当然在新版本里面已经有很好解决。如果想避免血泪史的话,还是原来我在PPT上讲的,一定要放在产品服务器之前,先做一些实际使用,在应用过程中去感受,我觉得这样来逐步适应,而不是一下子上来之后,很贸然把一个项目放到一个不成熟的产品上去,这是逐步适应,可能会避免很多血泪史。
主持人程显峰:大家有各种各样避免血泪史的方法,关于NoSQL实施部署,以及集成方面。很多人会问一个问题,现在云计算这么火,我自己为什么还要自己弄一个NoSQL,这样的服务可不可以用,比如国内盛大提出这样服务,他做了一个多足环境你可以自由来用,我想问丛磊,你作为一个PASS平台,很多人在你这做了应用,他可能想从别的地方做一个,从你这个角度来讲,会不会建议你这个PASS平台有集成第三方的应用?
丛磊:这块集成,只要用户有需求我们都会尽量满足,只要不是太离谱都会去满足。像现在有很多游戏开发商,因为游戏是盈利的,所以我们把游戏开发商需求也是提到前面的,游戏开发商肯定会有很多需求,他就不想改代码,KVDB也可以做,他一点都不想改,我们也尽量去满足他。我们这时候解决方案,我们也在做IS平台,就像盛大这种做法可以进行租赁,这种东西我们还是鼓励他去用的,毕竟这是用户需求,关键还在隔离性,如果用IS,像这种产品隔离性还是比较容易保证的,因为我通过网络层,还是通过虚拟化的技术都可以来保证。
推荐阅读
[ 针对新增资金如何投资的问题,中投公司副总经理汪建熙表示中投会根据既定的投资战略和市场的变化进行投资;短期来看会有积极的偏离,但一定是做长期的配置,不会在短期内有大幅度的变化 ] 全国政协委员、中投公司副>>>详细阅读
本文标题:圆桌沙龙:NoSQL技术实战
地址:http://www.lgo100.com/a/kandian/20120305/36928.html

网友点评
精彩导读
科技快报
品牌展示