[ 
https://issues.apache.org/jira/browse/HDFS-1431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Scott Chen updated HDFS-1431:
-----------------------------

    Description: 
Currently Balancer does not obtain information from BlockPlacementPolicy so it 
can transfer the blocks without checking with BlockPlacementPolicy.
This causes the policy break after balancing the cluster.

There are some new policies proposed in HDFS-1094 and MAPREDUCE-1831 in which 
the block placement follows some pattern.
The pattern can be broken by Balancer.

I propose that we add the following method in BlockPlacementPolicy:
{code}
  abstract public boolean canBeMoved(String fileName, Block block,
    DatanodeInfo source, DatanodeInfo destination);
{code}

And make Balancer use it in
{code}
  private boolean isGoodBlockCandidate(Source source,
      BalancerDatanode target, BalancerBlock block)
{code}

What do you think?

  was:
Currently Balancer does not obtain information from BlockPlacementPolicy so it 
can transfer the blocks without checking with BlockPlacementPolicy.
This causes the policy break after the balancer balance the blocks.

There are some new BlockPlacementPolicy in HDFS-1094 and MAPREDUCE-1831 in 
which the block placement follows some pattern.
The pattern can be broken by Balancer.

I propose that we add the following method in BlockPlacementPolicy:
{code}
  abstract public boolean canBeMoved(String fileName, Block block,
    DatanodeInfo source, DatanodeInfo destination);
{code}

And make Balancer use it inside
{code}
  private boolean isGoodBlockCandidate(Source source,
      BalancerDatanode target, BalancerBlock block)
{code}

What do you think?


> Balancer should work with the logic of BlockPlacementPolicy
> -----------------------------------------------------------
>
>                 Key: HDFS-1431
>                 URL: https://issues.apache.org/jira/browse/HDFS-1431
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: balancer
>    Affects Versions: 0.22.0
>            Reporter: Scott Chen
>            Assignee: Scott Chen
>             Fix For: 0.22.0
>
>
> Currently Balancer does not obtain information from BlockPlacementPolicy so 
> it can transfer the blocks without checking with BlockPlacementPolicy.
> This causes the policy break after balancing the cluster.
> There are some new policies proposed in HDFS-1094 and MAPREDUCE-1831 in which 
> the block placement follows some pattern.
> The pattern can be broken by Balancer.
> I propose that we add the following method in BlockPlacementPolicy:
> {code}
>   abstract public boolean canBeMoved(String fileName, Block block,
>     DatanodeInfo source, DatanodeInfo destination);
> {code}
> And make Balancer use it in
> {code}
>   private boolean isGoodBlockCandidate(Source source,
>       BalancerDatanode target, BalancerBlock block)
> {code}
> What do you think?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to