leaseManager详解

leaseManager详解

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

HDFS的租约机制通过LeaseManager实现,确保同一时间只有一个客户端能修改文件。租约分为软限制和硬限制,软限制为60秒,超时后可恢复租约。LeaseManager管理用户、文件和租约的关系,定期检查租约状态,以确保文件的独占性。

🎯

关键要点

  • HDFS的租约机制通过LeaseManager实现,确保同一时间只有一个客户端能修改文件。
  • 租约分为软限制和硬限制,软限制为60秒,超时后可恢复租约。
  • LeaseManager管理用户、文件和租约的关系,内部维护两个集合:leases和leasesById。
  • 租约持有者的身份由clientName表示,生成规则包括任务ID和随机数。
  • LeaseManager定期检查租约状态,超出硬限制后会强制进行租约恢复,恢复的执行者为HDFS_NameNode。

延伸问答

HDFS的租约机制是如何实现的?

HDFS的租约机制通过LeaseManager实现,确保同一时间只有一个客户端能修改文件。

什么是软限制和硬限制?

软限制为60秒,超时后可恢复租约;硬限制是文件最长不放开租约的时间,超出后会强制进行租约恢复。

LeaseManager如何管理租约?

LeaseManager管理用户、文件和租约的关系,维护两个集合:leases和leasesById。

租约持有者的身份是如何表示的?

租约持有者的身份由clientName表示,生成规则包括任务ID和随机数。

LeaseManager如何处理超时的租约?

LeaseManager定期检查租约状态,超出硬限制后会强制进行租约恢复,恢复的执行者为HDFS_NameNode。

在什么情况下会抛出租约持有者异常?

如果文件是UnderConstruction且已有租约持有者,则会抛出已持有租约的异常。

➡️

继续阅读