当前位置: 首页 > news >正文

分布式锁的可用性与切换效率探讨

不可否认,在多核时代,多线程并发是常态, 分布式锁服务通过持续心跳来保证锁的健壮性,让用户不用投入很多精力关注丢锁,但也有可能异常的用户进程持续占据锁。

我们也曾经遇到过该类场景,因为机器 load 高,硬件问题等原因,设备上的进程假死但其中仍存在部分线程在工作,比如锁的心跳维护线程依然正常运行,这样锁节点仍然是被假死进程占据着,且无法被其他进程抢占。针对该场景,为了保证锁最终可以被调度,提供了可以安全释放锁的会话加黑机制。

当用户需要将发生假死的进程持有的锁释放时,可以通过查询会话信息,并将会话加黑,此后,心跳将不能正常维护,最终导致会话过期,锁节点被安全释放。这里我们不是强制删除锁,而是选用禁用心跳的原因如下:

a. 删除锁操作本身不安全,如果锁已经被其他人正常抢占,此时删锁请求会产生误删除。
b. 删除锁后,持有锁的人会话依然正常,它仍然认为自己持有锁,会打破锁的互斥性原则。

切换效率:

当进程持有的锁需要被重新调度时,持有者可以主动删除锁节点,但当持有者发生异常(如进程重启,机器宕机等),新的进程要重新抢占,就需要等待原先的会话过期后,才有机会抢占成功。默认情况下,分布式锁使用的会话生命期为 50 秒,当持有锁的进程意外退出后(未主动释放锁),最长需要经过 50 秒锁节点才可以被再次抢占。

要提升切换精度,本质上要压缩会话生命周期,同时也意味着更快的心跳频率,对后端更大的访问压力。我们通过对后端进行优化,使得会话周期可以进一步压缩,提升锁的切换效率。

例如:目前给 TableStore 提供 30 秒的分布式锁,同时也通过提供 Restful 接入方式,让用户可以自定义会话时长及控制心跳发送,同时我们会将锁的精度进一步提高到 20 秒之内 。
结合具体的业务场景,例如守护进程发现锁持有进程挂掉的场景,提供锁的 CAS 释放操作,使得进程可以零等待进行抢锁。比如利用在锁节点中存放进程的唯一标识,强制释放已经不再使用的锁,并重新争抢,该方式可以彻底避免进程升级或意外重启后抢锁需要的等待时间。

http://www.jsqmd.com/news/964322/

相关文章:

  • 3个技巧彻底解决Windows字体限制问题:No!! MeiryoUI零基础5分钟快速上手指南
  • 51单片机串口通信实战:从原理到实现完整命令行交互程序
  • Django搭建的流浪猫狗救助与领养全流程管理后台(含数据库和部署配置)
  • Magisk深度解析:Android系统级Root与系统定制完整指南
  • 告别Transformer的算力焦虑:用两个线性层实现External Attention(EA)的保姆级解读
  • 终极VS Code YAML插件指南:Red Hat官方支持让你的配置编写效率翻倍
  • 2026年表调剂厂家与源头供应商技术实力观察 - 品牌企业推荐师(官方)
  • 从电动车BMS充电通信实战,拆解SIF单线协议的设计思路与调试技巧
  • 告别裸机调试:在CC2640R2的Project Zero工程里,如何快速集成OLED驱动模块
  • Python基础:浮点数float精度问题与解决方案
  • MIFARE Classic Tool终极指南:如何用Android手机轻松管理你的NFC门禁卡
  • 高考结束换新机!准大学生全价位手机推荐,准考证购机立省上千|2026 升学购机攻略 - 资讯速览
  • 免费分享一款站长 SEO 关键词工具:AI关键词生成器 Pro
  • 从零理解GraphSAGE:用PyTorch手把手实现一个社交网络节点分类模型
  • WPF Halcon实战:用HSmartWindowControl和HDrawingObject搞定可交互ROI(附完整源码)
  • 告别BigDecimal的繁琐!用Hutool的NumberUtil搞定商业计算(含保留小数、格式化实战)
  • 终极macOS光标定制指南:用Mousecape打造个性化桌面体验
  • 2026天水市权威认证贵金属回收 TOP5+黄金回收白银回收铂金回收门店地址电话推荐
  • LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅
  • 解锁华硕笔记本隐藏潜能:G-Helper轻量控制工具深度体验指南
  • 别再傻傻分不清!一张图看懂SATA、M.2、NVMe硬盘怎么选(附避坑指南)
  • Python基础:字符串索引与切片操作完全指南
  • 模板驱动型文档自动化:结构化内容复用与三层架构解析
  • 政府购买服务目录中信息化项目分类与政府采购服务相关问题研究报告
  • 模拟灰度传感器原理与实战:从循迹小车到简易颜色识别
  • AD6.9授权冲突解决:局域网多机唯一序列号配置指南
  • LED路灯技术解析:从光效、散热到智能控制,全面对比高压钠灯
  • CSDN创作者必看:AI营销卡片关闭权限已灰度开放!仅限开通「专业认证」且近30天原创率>85%的账号(附自查清单)
  • 车联网多车协同通信调度代码集:含MADDPG与MADQN完整实现及仿真环境
  • 昇腾CANN集群通信库hcomm:多机分布式训练的NCCL兼容通信方案