You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Yi Liu (JIRA)" <ji...@apache.org> on 2015/05/12 09:24:00 UTC

[jira] [Created] (HDFS-8376) Erasure Coding: Update last cellsize calculation according to whether the erasure codec is liner

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)