通过“改变引用”和“加锁”的方式提高缓存访问并发度

提高缓存访问和处理的并发度,在很多缓存应用和IO应用中有很多使用场景。

 

一、IO当中写数据的数据缓存,保证Socket在write数据的时候,线程仍然可以向输出队列OutputBuffer当中添加要写出的数据

 

二、在数据库缓存log写入硬盘的过程中,使用快照技术,比如changed是要flush进硬盘的数据库修改,如果直接将整个flush过程锁死,其他数据库事务将暂停,效率低下,解决办法,将changed内容转移到snapshot中,重新new 一个对象给changed当中,在snapshot当中慢慢将数据flush进数据库,此时需要两个所

flushreadwritelock  用于锁changed

snapshotreadwritelock 用于访问snapshot内容(snapshot内容相当于已经是数据库当中的内容了,get数据的时候在cache当中不存在的时候首先在snapshot当中进行find)

转载于:https://www.cnblogs.com/wuxinliulei/p/4945831.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值