Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
Description
NameNode supports dynamically change ErasureCodingPolicy, so these ErasureCodingPolicies should be protected by one lock, the current implementation uses the global lock.
ErasureCodingPolicy mainly involves directory tree and edits logs, such as:
- getErasureCodingPolicy(String src)
- setErasureCodingPolicy(String src, String ecPolicyName)
- addErasureCodingPolicies(ErasureCodingPolicy[] policies)
- disableErasureCodingPolicy(String ecPolicyName)
- enableErasureCodingPolicy(String ecPolicyName)
So we can use the FSLock to make these operations thread safe.
Another reason why we use the FSLock to protect ErasureCodingPolicy related operations is that we use FSLock to make edit write operations thread safe.
Attachments
Issue Links
- links to