看到JE上好几个关于memcached做hibernate二级缓存帖子,不由得兴奋了一把。
作为集中式的缓存实现,的确可以解决JBossCache在大量update时的广播效率问题。
但是,目前我碰到的case,需要有大量的update,同时还期望(最好)能拥有一定的事务性(要求不高,read-commited级别就可以了,也就是Hibernate里面的read-write模式)。
目前不知道到底是hibernate-memcached好还是JBossCache好?
hibernate-memcached
好处:集中式,update后无需广播
坏处:不支持事务
JBossCache
好处:支持事务(但其实我的case不需要那么高隔离级别的事物)
坏处:update后通过广播在各节点之间同步
BTW,问几个很弱的问题
(1)memcached在更新的时候,是否会block其他的读操作;或者,如果有多个请求同时提交写请求,它会怎么办?
(2)JBossCache在集群环境下如何实现事务性支持?难道需要等到各个节点都完成同步之后才能最后提交?否则其他节点岂不是很容易读到脏数据?
请熟悉这个领域的大牛大力拍砖!!!