论坛首页 Java企业应用论坛

比Memcached快10倍甚至100倍的Xixibase

浏览 19301 次
精华帖 (5) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (13)
作者 正文
   发表时间:2011-11-09  
yeaya 写道
evanzzy 写道
用Memcache这种集中式的cache,就是要避免数据一致性问题,LocalCache是不能满足要求的。最简单的LocalCache就是弄个map自己在那儿查,有什么意义么?有点标题党的味道了

local cache的数据和server端和其他客户端的local cache的数据是一致的。在某一数据被修改、删除或者过期之后,Xixibase server会立即通知对应的客户端删除local cache中对应的数据。这个时间是非常快的,局域网内是毫秒级。还有local cache是封装在Xixibase Client中的,外部调用只要使用简单的API就可以。



高并发还是可能会出现数据不一致的问题的
0 请登录后投票
   发表时间:2011-11-09  
auto fail over如果和任何active standby同步模式配合,那么必然是达不到绝对一致性
要达到可靠的绝对一致性,client或某个中间层的具有确认返回特性的同时双写或多写是唯一途径
0 请登录后投票
   发表时间:2011-11-09  
缓存服务器,适合自己的才是最好的.
0 请登录后投票
   发表时间:2011-11-09  
现在是谁比谁快的时代了...
0 请登录后投票
   发表时间:2011-11-09  
tsxm 写道
yeaya 写道
evanzzy 写道
用Memcache这种集中式的cache,就是要避免数据一致性问题,LocalCache是不能满足要求的。最简单的LocalCache就是弄个map自己在那儿查,有什么意义么?有点标题党的味道了

local cache的数据和server端和其他客户端的local cache的数据是一致的。在某一数据被修改、删除或者过期之后,Xixibase server会立即通知对应的客户端删除local cache中对应的数据。这个时间是非常快的,局域网内是毫秒级。还有local cache是封装在Xixibase Client中的,外部调用只要使用简单的API就可以。



高并发还是可能会出现数据不一致的问题的

是的,在server端数据变化(被修改、删除或者过期)到通知相关客户端删除local cache相应的数据的极短时间内是有可能存在数据不一致性的危险。但如果更新数据的客户端不把这个更新数据的消息通过其他方式再转发给其他客户端,这个短期的数据不一致性是不会产生危害的。
0 请登录后投票
   发表时间:2011-11-09  
前面的问题都提过了,我说一下我的看法:
你使用localcache思路非常好,localcache又会带来新的问题,就是数据不一致问题,有些时候各个客户端确实因为网络问题丢包,导致localcache失效不了,这样危害性还是很大的。(这个一般是要有个通知双向确认的问题,来保证数据的客户端能够确认更新的)

呵呵,楼主撇开了一个复杂问题(集中cache),却丢给自己一个更为复杂问题(本地cache和集中servercache),我感觉这就是折腾啊。
0 请登录后投票
   发表时间:2011-11-10   最后修改:2011-11-10
bao231 写道
前面的问题都提过了,我说一下我的看法:
你使用localcache思路非常好,localcache又会带来新的问题,就是数据不一致问题,有些时候各个客户端确实因为网络问题丢包,导致localcache失效不了,这样危害性还是很大的。(这个一般是要有个通知双向确认的问题,来保证数据的客户端能够确认更新的)

呵呵,楼主撇开了一个复杂问题(集中cache),却丢给自己一个更为复杂问题(本地cache和集中servercache),我感觉这就是折腾啊。

首先在TCP的连接里数据是可靠的,底层丢包的话TCP有重发机制。Xixibase还考虑了以下问题:
1. 当客户端和server之间的网络在某一段时间内不可用怎么办呢?Xixibase的客户端会清空与该server相关的所有local cache数据,避免产生数据不一致风险。
2. 当server把local cache失效信息发给客户端的过程中,连接断开怎么办?即server也不能确定客户端是否已经真的收到了这些失效信息。Xixibase的做法是客户端会对它收到的失效信息进行确认,否则server会发送原先的失效信息,保证失效信息能可靠的传输到客户端。

出于对性能的考虑,Xixibase没有去保证绝对的local cache和server之间的绝对一致性。但不一致的缺口是非常小的,可以适合非常多的应用。还有真的对一致要求非常高的数据可以不使用local cache,是否使用local cache、什么时候使用都是可控的,我们可以根据不同的一致性要求进行选择。
0 请登录后投票
   发表时间:2011-11-10  
CurrentJ 写道
楼主想法不错,而且开发出了我一直想实现的东西,非常好。
之前一直没有使用memcache就是因为远端集中cache需要消耗网络时间,最快的还是localcache

很高兴你和我有类似的想法^_^
希望大家能多关注、试用一下Xixibase,给一些建议、反馈,好把Xixibase做的更好。
0 请登录后投票
   发表时间:2011-11-10  
请解释和 map+jgroup+memcached有什么区别
0 请登录后投票
   发表时间:2011-11-11  
eyeieye 写道
请解释和 map+jgroup+memcached有什么区别

eyeieye能否阐述一下‘map+jgroup+memcached’是什么概念?是否是指客户端通过jgroup进行通讯?不想随意的评论不熟悉的东西^_^。
0 请登录后投票
论坛首页 Java企业应用版

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