[ https://issues.apache.org/jira/browse/HADOOP-1912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12539275 ]
Hadoop QA commented on HADOOP-1912: ----------------------------------- +1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12368396/replace6.patch against trunk revision r590273. @author +1. The patch does not contain any @author tags. javadoc +1. The javadoc tool did not generate any warning messages. javac +1. The applied patch does not generate any new compiler warnings. findbugs +1. The patch does not introduce any new Findbugs warnings. core tests +1. The patch passed core unit tests. contrib tests +1. The patch passed contrib unit tests. Test results: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/1046/testReport/ Findbugs warnings: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/1046/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/1046/artifact/trunk/build/test/checkstyle-errors.html Console output: http://lucene.zones.apache.org:8080/hudson/job/Hadoop-Patch/1046/console This message is automatically generated. > Datanode should support block replacement > ----------------------------------------- > > Key: HADOOP-1912 > URL: https://issues.apache.org/jira/browse/HADOOP-1912 > Project: Hadoop > Issue Type: New Feature > Components: dfs > Affects Versions: 0.14.1 > Reporter: Hairong Kuang > Assignee: Hairong Kuang > Fix For: 0.16.0 > > Attachments: replace.patch, replace1.patch, replace2.patch, > replace3.patch, replace4.patch, replace5.patch, replace6.patch > > > This jira Data Node's support for rebalancing (HADOOP-1652). When a balancer > decides to move a block B from Source S to Destination D. It also chooses a > proxy source PS, which contains a replica of B, to speed up block copy. The > block placement is carried in the following steps: > 1. A block copy command is sent to datanode PS in the format of > "OP_BLOCK_COPY <block_id_of_B> <source S> <destination D>". It requests PS to > copy B to datanode D. > 2. PS then transfers block B to datanode D with a block replacement command > to D in the format of "OP_BLOCK_REPLACEMENT <block_id_of_B> <source S> > <data_of_B>". > 3. Datanode D writes the block B to its disk and then sends a name node a > blockReceived RPC informing the namenode that a block B is received and > please delete a replica of B from source S if there is any excessive replica. > 4. The namenode then adds datanode D to block B's map and removes an exesive > replicas of B in favor of datanode S. > In addition, each data node has a limited bandwidth for rebalancing. The > default value for the bandwidth is 5MB/s. Throttling is done at both source & > destination sides. Each data node limits maximum number of concurrent data > transfers (including both sending and receiving) for the rebalancing purpose > to be 5. In the worst case, each data transfer has a limited bandwidth of > 1MB/s. Each sender & receiver has a Throttler. The primary method of the > class is "throttle( int numOfBytes )". The parameter numOfBytes indicates the > total number of bytes that the caller has sent or received since the last > throttle is called. The method calculates the caller's I/O rate. If the rate > is faster than the bandwidth limit, it sleeps to slow down the data transfer. > After it wakes up, it adjusts its bandwidth limit if the number of concurrent > data transfers is changed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.