背景
现在我们已经引入了HDFS-15150,我们可以开始改进一些DN操作来使用读锁而不是写入锁来提高并发。
第一步是对Replicamap进行更改
- ReplicaMap:一些方法会调用`replicmap .replicas()`(例如`getBlockReports`, `getFinalizedBlocks`, `deepCopyReplica`),并且只以只读方式使用,所以它们也可以切换到使用readLock。
接下来是目录扫描仪和磁盘均衡器,只需要读锁。
- `Disk Balancer`, `Directory Scanner`: Next is the directory scanner and disk balancer, which only require a read lock.
最后,FSDATASETIMPL在那里它相当明显,他们只需要读锁。
- BlockSender and fsdatasetImpl: where is it fairly obvious they only need a read lock.
分析
(1)ReplicaMap该类维护副本的集合
-

本文介绍了HDFS中为提高并发性能而进行的锁优化,涉及ReplicaMap、DiskBalancer和FsDatasetImpl等组件。通过对只读操作使用读锁,减少了写锁的使用,从而提升了数据节点的操作并发性。改动包括修改相关方法的锁类型,并添加配置选项以控制读写锁的启用。所有改动经过单元测试验证,确保了系统的稳定性和性能提升。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



