【精】从HDFS的文件系统锁到读写锁

171 篇文章 149 订阅 ¥29.90 ¥99.00
本文详细介绍了HDFS中FSNamesystemLock的实现,它是一个读写锁,用于保护文件系统的并发操作。讨论了ReentrantReadWriteLock的原理,包括写锁降级,以及如何通过readerShouldBlock()方法优化写锁饥饿问题。同时简要提及了Java 8的StampedLock,作为对ReentrantReadWriteLock的一种优化,支持乐观读锁,提高并发效率。
摘要由CSDN通过智能技术生成

通过本文,你将了解到:

  1. HDFS中的FSNamesystemLock是什么?
  2. 读写锁ReentrantReadWriteLock、写锁降级以及ReentrantReadWriteLock源码对写线程饥饿情况做的一点优化。
  3. 简要了解JDK 8的新读写锁:StampedLock。

一、HDFS中的FSNamesystemLock

了解HDFS的朋友都知道,HDFS中有一把大锁。它是HDFS中令人又爱又恨的一个存在。爱是因为:它实现方式简单,保护整个文件系统在并操作下的正确性。恨是因为:正是由于它实现方式简单,锁的粒度很粗,是限制HDFS性能的一个大石!举个例子:比如removeBlocks和completeFile这两个方法。都需要获取写锁,那这样就得等对方执行完之后释放写锁自己才可以获取写锁执行。在集群规模大起来之后,对文件系统修改的RPC请求多起来之后,这把大锁对HDFS性能的限制可想而知。

removeBlocks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叹了口丶气

觉得有收获就支持一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值