[ 
https://issues.apache.org/jira/browse/HDFS-9603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15143778#comment-15143778
 ] 

Zhe Zhang commented on HDFS-9603:
---------------------------------

Thanks Rui for the work. With this JIRA and HDFS-8020, I think we should 
revisit the {{ECBlockGroup}} => {{ECBlock}} => {{ECChunk}}, and 
{{ErasureCodingStep}} abstractions. Also pinging [~lewuathe] for the discussion.

IIUC the purpose of these abstractions (instead of directly using raw coders) 
is to support more advanced algorithms such as LRC and Hitchhiker. [~drankye] 
Could you help clarify if Hitchhiker needs the {{ECBlockGroup}}? Or only LRC 
potentially needs it? If HH don't need it, I suggest we keep using raw coders 
for now. We should still make the change to create different coders (RS vs. 
XOR) based on configuration.

Right now, without a clear need for the {{ECBlockGroup}} abstraction, we are 
basically creating a {{ECBlockGroup}} from the input buffers 
({{prepareBlkGroup}}), just for the purpose of taking out the buffers again 
later ({{encode}}).

I'm also suggesting the above to prepare for the forthcoming release of EC 
(either 2.9 or 3.0). With LRC looking unlikely to be implemented before the 
release, I think we should focus on:
# Supporting multiple EC policies
# hflush / hsync
# Fully integrate ISA-L coder, new Java coder, and HH coder. Ideally with more 
performance tests on HH.

Thoughts?


> Erasure Coding: Use ErasureCoder to encode/decode a block group
> ---------------------------------------------------------------
>
>                 Key: HDFS-9603
>                 URL: https://issues.apache.org/jira/browse/HDFS-9603
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Rui Li
>            Assignee: Rui Li
>         Attachments: HDFS-9603.1.patch, HDFS-9603.2.patch, HDFS-9603.3.patch
>
>
> According to design, {{ErasureCoder}} is responsible to encode/decode a block 
> group. Currently however, we directly use {{RawErasureCoder}} to do the work, 
> e.g. in {{DFSStripedOutputStream}}. This task attempts to encapsulate 
> {{RawErasureCoder}} to comply with the design.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to