分布式文件系统实现互斥写入

本文探讨了在分布式环境下,如何利用分布式锁解决共享资源互斥访问的问题。介绍了常见分布式锁的实现原理,如etcd的Lease和Revision机制。同时,针对分布式锁的实际应用问题,如双leader导致的数据冲突,提出了Fencing Token的概念。此外,鉴于Hadoop等分布式文件系统缺乏Fencing能力,文章提出了一种基于rename原子性的IO Fencing实现,确保写入和删除操作的正确性。
摘要由CSDN通过智能技术生成

在分布式环境下,针对共享资源的互斥访问成为很多应用需要解决的问题,对于这个问题,人们会引入分布式锁来解决。在单机环境,有mutex等操作系统机制,帮助实现多线程情况下对共享资源的互斥访问;在分布式环境,也有很多redis,zk,etcd等三方服务实现资源的共享,本文会简单介绍常见的分布式锁实现方案,方案在实际使用中所存在的问题,以及利用dfs特性实现分布式文件互斥写入、删除

分布式锁实现原理

分布式锁实现原理都是抢夺唯一资源,拿到资源的成为leader可对资源进行操作,其他进程则为follower,可监听资源的使用,一旦leader释放,follower则可进行资源再次抢夺。这要求分布式锁具备以下一些特性:

  • 互斥性:在任意时刻,对于同一个锁,只有一个客户端能持有,从而保证一个共享资源同一时间只能被一个客户端操作;

  • 安全性:即不会形成死锁,当一个客户端在持有锁的期间崩溃而没有主动解锁的情况下,其持有的锁也能够被正确释放,并保证后续其它客户端能加锁;

  • 可用性:当提供锁服务的节点发生宕机等不可恢复性故障时,“热备” 节点能够接替故障的节点继续提供服务,并保证自身持有的数据与故障节点一致。

以etcd服务为例,讲述是如何实现上面分布式锁的几个特性。

etcd自身是是一个数据强一致的键值(key-value)存储数据库。其自身通过raft算法实现了高可用性,保证服务的稳定。

同时,他还提供了如下能力,支持分布式锁的实现:

  • Lease 机制:即租约机制(TTL,Time To Live),Etcd 可以为存储的 Key-Value 对设置租约ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值