Memcached & Coherence

    Memcached是用在很多网站的cache软件,包括Live Journal, Slashdot,  Wikipedia;其基本概念是hashtable,在cache中式key和value的对应,存取用get和set,这一点Coherence是一样的,也许是借鉴memcache的。

 

     在多个节点的情况下,memcache并不需要查找key,而是由key的hashcode可以直接得到对象的存取位置,所以应该是实现了某种DHT的算法,这一点Coherence应该也是一样的,这样的好处是明显的,cache并不需要在网络上寻找对象(或者说很容易知道存储的位置),只需要到它知道的节点上去获取对象就可以了;但有一点很大的不同是memcached每个节点是独立的,各个节点间并不通讯,也就是说如果有一个instance crash,memcached需要在客户端去除掉这一节点,但Coherence不同节点组成cluster,数据可以互相备份,如果有节点crash那么利用备份的数据,cluster可以重新分配数据的存储,分配数据的备份。当然这样做的好处和坏处也是显而易见的,好处当然是不一样的可靠性。

 

     据称memcached可以每个节点使用不同大小的内存,那么不同的节点上存储的数据就不同,这点Coherence做不到,Coherence的数据是均匀分布的

 

  文章里说memcached没有锁的机制,这个特点(?)则不存在block的情况,resource里把这个当作优点的说,当然吞吐量是提高了,很多事情都是看你从哪个方面来看。Coherence则实现了分布锁,如果对数据完整性有要求这是必然的。

另外我们可以看到memcached client的作用是存取memcached里的数据,也就是说它没有local cache,每次数据的读取都从网络,这一点和Coherence的Distributed Cache是一样的,但Coherence的top相对灵活还有一种top叫near包含有local cache

 

目前的memcache用c写的,有Java等语言的客户端

Resource里提到LiveJournal用了28个instance,cache了30G的数据,cache的命中率达到92%

据我所知国内也有很多站点使用了memcached包括新浪、豆瓣等

 

当然有很多另外的企业特性的要求不再这里的讨论之列,比如Transaction,distributed computing

 

Reference: http://www.linuxjournal.com/article/7451#comment-11715

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值