Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha1
-
Incompatible change
-
{{HdfsAdmin#setErasureCodingPolicy}} now takes a String {{ecPolicyName}} rather than an ErasureCodingPolicy object. The corresponding RPC's wire format has also been modified.
Description
The current setErasureCodingPolicy API takes an optional ECPolicy. This makes calling the API harder for clients, since they need to turn a specified name into a policy, and the set of available EC policies is only available on the NN.
You can see this awkwardness in the current EC cli set command: it first fetches the list of EC policies, looks for the one specified by the user, then calls set. This means we need to issue two RPCs for every set (inefficient), and we need to do validation on the NN side anyway (extraneous work).
Since we're phasing out the system default EC policy, it also makes sense to make the policy a required parameter.