首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX
›
Java
关于memcache中'乐观锁'的问题
timepast
·
idyllim
·
2013-08-09 15:22:12 +08:00
· 5554 次点击
这是一个创建于 4191 天前的主题,其中的信息可能已经有所发展或是发生改变。
memcache中在1.2.4版本以后 有了gets 和cas 通过类似乐观锁的方法解决并发问题,具体的网上资料很多.
现在遇到此情景:
解决了memcache原子性的问题,但是随之而来,有多条业务不能提交,目前想到的办法是递归提交,
但是考虑到这样效率会很低.
请大家指导下,在平时业务中使用乐观锁,机制时,业务都是怎么处理的,有什么好的思路.
memcache
乐观
业务
3 条回复
•
1970-01-01 08:00:00 +08:00
1
cloudzhou
2013-08-09 15:32:16 +08:00
1
我的观点是
1 不要在 cache 里面要求一致性,维护这个一致性代价很大,如果以严格的并发角度来看,很多实现都是非并发安全的,你要考虑在出错的情况下实现自我纠正,特别是不能导致错误持久化。
2 哪怕是要求了一致性,像你刚才提出的“多条业务不能提交”,说明你们的竞争太激烈,乐观锁的用处就是大部分时间是“乐观的”(我99%能获取更新成功),在竞争太激烈下就是悲观了。你要考虑事务最小化,事务处理,然后立刻提交。
2
GTim
2013-08-09 15:36:41 +08:00
坐等高人讨论
3
timepast
OP
2013-08-09 15:52:07 +08:00
@
cloudzhou
茅塞顿开,之前还一直在考虑sync的效率问题
1.memcache只提供了乐观情况下同步解决方案.
2.在程序(非cache)实现线程同步(认为是悲观情况)
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
1648 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms ·
UTC 01:43
·
PVG 09:43
·
LAX 17:43
·
JFK 20:43
Developed with
CodeLauncher
♥ Do have faith in what you're doing.