lease机制
使用缓存,通常需要注意的问题是一致性的问题,通常做法是:
1. http中使用head协议保证
2. 每次读取数据client向server发送验证请求i,和1类似
3. server记录那些client读取过数据,如果server对数据进行了修改,进行callback形式告知客户端失效,主要的问题是如果server和client通信失败,更新操作将无法继续。
另外的实现采用现在的lease机制,server在一段时间内给予client控制修改的权限,如果server想要修改数据,首先需要征得client的同意,如果client同意,那么client需要清空自己的缓存。如果lease过期了,client可以续租。
lease机制相对于callback的话,基本上服务器的负载是类似的,但是相对于callback机制, lease机制的话,能保证如果client和server无法通信的时,更新操作能继续进行。
lease机制对于读写操作的支持 :
(1)read机制:通常client想server发送read命令时,server将把lease发送给client,保证在lease的时效期内其他lcient不会向该数据更新,如果lease过期了,client将向server发送请求,如果能续约,则续约,否则将更新缓存的数据
(2)write操作:client向server发送write命令;server等待所有请求的lease失效,或者是想lease holder请求i更新操作;全部通过,更新操作才能继续。
lease带来的问题:
1. 分布式系统中的时间同步问题,通常添加时间窗口解决
ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/90/1298/CS-TR-90-1298.pdf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?