千家信息网

couchbase的CAS乐观锁问题是什么样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍couchbase的CAS乐观锁问题是什么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。场景:同步播放记录OPS: 30wcas问题CAS:Compare
千家信息网最后更新 2026年11月01日couchbase的CAS乐观锁问题是什么样的

这篇文章给大家介绍couchbase的CAS乐观锁问题是什么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

场景:同步播放记录OPS: 30w
cas问题CAS:Compare and Swap, 翻译成比较并交换。java.util.concurrent包中借助CAS实现了区别于synchronized同步锁的一种乐观锁。其原理是CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。
     /**     * Atomically sets the value to the given updated value     * if the current value {@code ==} the expected value.     *     * @param expect the expected value     * @param update the new value     * @return {@code true} if successful. False return indicates that     * the actual value was not equal to the expected value.     */    public final boolean compareAndSet(int expect, int update) {        return unsafe.compareAndSwapInt(this, valueOffset, expect, update);    }
在高并发的场景下,写入couchbase会引起cas问题。即如果未使用cas,那么后写入的数据,会覆盖前面写入的数据。如果启用的cas,那么因为同时读到了一个数据,只有第一个会写入成功,其余的因为 compare and swap 失败,未能写入。
此处要注意,虽然couchbase客户端的upsert方法,虽然支持cas,但是写入的时候,如果cas错误,那么也不会抛出异常,要使用replace方法如下面两张图所示

当我们使用正确的cas之后,需要处理cas带来的数据一致性问题,这时候,我们可以采用各自的解决方案来解决。
本人采用的是redisson的getBlockingQueue的drainTo方法,配合定时任务,实现批处理。
延伸:cas问题在服务端,如果设计的不合理会引发aba问题,简言之首先X和Y同时处理数据X先将A 改为 B然后将B改为 A此时Y将A改为其他值,也是成功的。但是此时数据已经经过了A->B->A的变化所以这时候会引用一个单独的值,来唯一区分两个值是不一样的。比如uuid等。

关于couchbase的CAS乐观锁问题是什么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

问题 数据 乐观 内存 方法 成功 内容 同时 场景 更多 同步 处理 帮助 不错 相同 一致 简言之 一致性 两个 任务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网科技会 互联网与科技发展 互联网金融 科技 广州紫鲸互联网科技 四川狮子座互联网科技 中国互联网金融科技基金 互联网汽车科技小镇 港股科技和互联网 彤创互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 链环科技传统企业怎么转型互联网 亳州好赞互联网科技有限公司 上海科技产业互联网平台 互联网营销推广黑科技 图游互联网科技 互联网科技手机排行榜 中国新注册互联网科技 中国科技和美国互联网 北京瑞云互联网科技有限公司 科技创新与互联网经济 无锡溥仪互联网科技有限公司 济南华为互联网科技产业总部基地 阿里巴巴算科技企业还是互联网 来此购互联网科技有限公司 苏州铭阳互联网科技有限公司 恒生互联网科技指数跳水 广西互联网科技孵化中心 银川新华互联网科技学校是国营吗 北京瑞云互联网科技有限公司
0