Yi Liu created HDFS-8376: ---------------------------- Summary: Erasure Coding: Update last cellsize calculation according to whether the erasure codec is liner Key: HDFS-8376 URL: https://issues.apache.org/jira/browse/HDFS-8376 Project: Hadoop HDFS Issue Type: Sub-task Reporter: Yi Liu Assignee: Yi Liu
Current calculation for last cell size is as following. For parity cell, the last cell size is the same as the first data cell. But as discussed in HDFS-8347 and on-line meeting, some erasure codec is not liner, then the last cellsize for parity block is the codec chunk size. {code} private static int lastCellSize(int size, int cellSize, int numDataBlocks, int i) { if (i < numDataBlocks) { // parity block size (i.e. i >= numDataBlocks) is the same as // the first data block size (i.e. i = 0). size -= i*cellSize; if (size < 0) { size = 0; } } return size > cellSize? cellSize: size; } {code} This JIRA also removes some duplicate code {{StripedBlockUtil#constructStripedBlock}} and {{StripedBlockUtil#getStripedBlockLength}} are duplicated with some other methods, we can clean up. -- This message was sent by Atlassian JIRA (v6.3.4#6332)