【HDFS】DirectoryScanner与append操作对副本状态判定是否存在冲突?

本文探讨了HDFS中DirectoryScanner在扫描目录并处理块时,与append操作并发执行时可能存在的问题。DirectoryScanner无fs dataset锁,而append操作持有volume级别的写锁。分析了在特定情况下,DirectoryScanner扫描期间副本状态变化为RBW后的安全性,指出由于目录扫描和内存块的对应性,以及append操作的磁盘写锁机制,这种状态转换不会导致意外后果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论:
不存在问题。

DirectoryScanner周期性地运行,扫描整个DN磁盘上的块与内存里的块做比较。
删除那些内存里没有的但是在磁盘上存在的块, 处理重复块等等。

最近在更细粒度化DN锁。在看到ReplicaMap#replicas方法时,阅读相关代码。
发现DirectoryScanner#scan 与append操作在并发场景下的一致性问题,需要仔细思考一下。

DirectoryScanner#scan没有fs dataset锁。
append操作是volume级别写锁。

考虑下面的情况:

1、DirectoryScanner线程执行scan操作,然后执行完了下面这行代码,获取了所有的FINALIZED状态的副本信息。

final List<ReplicaInfo> bl =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大数据技术部落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值