[DN优化] [锁优化][HDFS-15160] ReplicaMap, Disk Balancer and others use datanode readlock

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

背景

现在我们已经引入了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该类维护副本的集合

- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值