论坛首页 综合技术论坛

Memcachedb & Ncache 讨论

浏览 7083 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-19  
看了邮件列表:
http://groups.google.com/group/python-cn/browse_thread/thread/dd297b13ad14d8dc

比较感兴趣的是:这个结合是用了memcached的内存cache机制和bdb的持久化机制;但是为什么不直接使用bdb呢?bdb应该也支持内存cache的呀。看文中也说到memcachedb是使用到了memcached的socket部分,哈bdb的内存管理,硬盘存储。这样的话,其实是改了bdb的socket部分,应该叫做enhancebdb。

还有,看文中说到,会先把数据存到memcachedb中,然后异步更新到db中。读也直接从memcachdb读。那db变成备份了。是否有喧宾夺主之嫌?那么它的稳定性足可和db抗衡么?

如果结合Berkeley,cache性能不如memcached,稳定性不如db。由于不能在python-cn 邮件列表发文,故发于此。有熟悉者,能否就memcachedb得使用加以说明。大家也可以就此进行讨论。。。
   发表时间:2008-01-20  
又看了这篇blog:http://www.dbanotes.net/opensource/sina_memcachedb_ncache.html
文中最后提到是在bdb之前用memcached作了一个缓冲。那么,如果cache中数据在写入bdb之前down掉了,数据岂不是丢失了?还是有什么机制?如果直接存的话,根直接存数据库,或者直接存bdb有什么区别呢?那还不是相当于做了一个memcached+db.只是这个db换成了bdb,还有就是可能结合的更紧密了点。

刚看了一下ncache,基本上就是增强了nginx 的静态文件缓存能力。号称“a web cache system base on nginx web server. faster and more efficient than squid.”。

nginx+ncache做http服务器;memcachedb+mysqlProxy+mysql 组成db数据中心。这样的组合会不会很爽呀
0 请登录后投票
   发表时间:2008-01-20  
memcachedb牺牲了memcached的高性能换来了持久存储,为了防止cache挂掉,激增的数据库访问对db的压力,基本上,在大型web应用中,严重依赖cache机制,如果一但大部分cache down掉,瞬时db访问压力,绝对会把db压垮。这样的应用场景下,cache的自我恢复,变得首当其冲,牺牲点性能,来换回自我存储还是很值得的。但是不知道这个性能的损失由多大?

ncache只是看了一下项目主页介绍,没有评测过。应该算是nginx的缓存增强吧。不知道稳定性,性能如何。

整体来说,两者都是在实际的应用场景中对开源项目的二次开发,且不论有多大的惊奇之处,单凭开源出来,也是值得赞赏的。中国开源界需要这样的力量。


0 请登录后投票
   发表时间:2008-01-21  
第一眼看到memcachedb,我就知道它是我寻觅良久的“梦中情人”,呵呵。memcachedb的主要用途并不是让cache能够持久化,也许这种用法的确有点意思,但是cache持久化本身没有什么特别用处,既然是cache就没有持久化的必要。还是引用开发者自己的话来说明memcachedb的真正用途吧:

http://blog.csdn.net/simonlsy/

引用
需要频繁读写的小数据。例如数字类服务就像点击数,需要频繁写入小数据的例如评论系统,需要记录用户状态的例如在线人数以及在线用户等等。当然,如果您想用来存储单笔超过10K以上的数据,例如新闻或者文章或者论坛帖子也可以


JavaEye网站现在能够实时跟踪在线用户状态,能够记录用户读过什么帖子,这个功能的实现不能直接读写数据库表,否则性能要吃不消的,但也不能直接使用cache server,否则cache server重起清理缓存的时候,用户状态都丢失了。我们目前是用MySQL的内存表来实现的,性能还可以,但是内存表有很大的限制,妨碍了我们基于用户在线状态开发更多更有意思的功能。所以我一直在寻找一个能够实现高性能读写,不需要太严格的事务保护,但是带有存储机制的服务,并且这个服务必须能够支持分布式访问的,因此Berkeley DB就不适用了。而memcachedb正是我所想要的东西,可以给我们帮上大忙了,以后JavaEye网站会在很多场合用得上memcachedb,很cool的小东西!是新浪的开发人员搞出来的,国内的互联网公司也可以在技术上向开源社区做出贡献了,很好!
0 请登录后投票
   发表时间:2008-01-21  
... 什么叫“还是新浪的开发人员搞出来的”??
0 请登录后投票
   发表时间:2008-01-21  
robbin 写道

还是新浪的开发人员搞出来的,真不错!


这句话是夸奖呀.楼上不要激动
0 请登录后投票
   发表时间:2008-01-27  
新浪的*nix+c的牛人还是很多的,虽说几个人改变不了新浪,但是他们业余时间的确是贡献了不少东西的。
memcached+bdb是非常酷的,因为memcached只需要再来一点持久能力就会扩展出很多的应用场景来。
0 请登录后投票
   发表时间:2008-01-28  
memcached将数据放在内存,速度是不用置疑的,但如果运行的系统因故死掉,数据如何保护呢。其声称的主辅实时无差异同步是否真能做得好,还待验证。
在这个方面MNESIA做得是最好的,是真正意义上的分布式内存实时数据库,除了保存数据于内存之外,还可以进行持久化。
0 请登录后投票
   发表时间:2008-01-28  
很有意义的一个项目,作者也很自豪的:

引用
稳定性:memcachedb目前被应用于新浪互动社区多个产品线中,具有钢铁般的品质,Sina出品,品质毋庸置疑


^_^
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics