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

Zhe Zhang updated HDFS-9098:
----------------------------
    Attachment: HDFS-9098.00.patch

Thanks Jing for the helpful review! Updating the patch to address the comment 
on linking fault injection and sync points.

The basic challenge here is to handle non-linear event flow in a thread (e.g. 
with if statements). The approach in the patch is to have 2 types of sync 
points:
* {{syncBarrier}}: blocks until the prior event happens
* {{syncCondition}}: returns false until the prior event happens

The biggest remaining work is to add more details in each sync event (either 
barrier or condition). For example, a certain {{WRITE_CHUNK}} barrier should 
only apply for a specified file offset.

This is still an experimental patch, so more comments / questions will be very 
helpful.

> Erasure coding: emulate race conditions among striped streamers in write 
> pipeline
> ---------------------------------------------------------------------------------
>
>                 Key: HDFS-9098
>                 URL: https://issues.apache.org/jira/browse/HDFS-9098
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: erasure-coding
>    Affects Versions: 3.0.0
>            Reporter: Zhe Zhang
>            Assignee: Zhe Zhang
>         Attachments: HDFS-9098.00.patch, HDFS-9098.wip.patch
>
>
> Apparently the interleaving of events among {{StripedDataStreamer}}'s is very 
> tricky to handle. [~walter.k.su] and [~jingzhao] have discussed several race 
> conditions under HDFS-9040.
> Let's use FaultInjector to emulate different combinations of interleaved 
> events.
> In particular, we should consider inject delays in the following places:
> # {{Streamer#endBlock}}
> # {{Streamer#locateFollowingBlock}}
> # {{Streamer#updateBlockForPipeline}}
> # {{Streamer#updatePipeline}}
> # {{OutputStream#writeChunk}}
> # {{OutputStream#close}}



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

Reply via email to