[
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.wip.patch
WIP patch to demonstrate the idea. It leverages ideas from the [IMUnit |
http://mir.cs.illinois.edu/imunit/] paper and [sync_point testing |
https://github.com/cloudera/kudu/blob/master/src/kudu/util/sync_point.cc] in
Kudu.
The logic of {{syncPoint}} is still hacky because it needs to serve both as a
synchronization point and a fault injector. I'm working on a better structure.
The added {{TestStripedDataStreamers}} has a very simple test to emulate the
case where a second failure happens during the {{updateBlockForPipeline}} for
the first failure. I think ideally we need to create {{BEFORE}} and {{AFTER}}
events, like {{BEFORE_UPDATE_BLOCK_FOR_PIPELINE}} and
{{AFTER_UPDATE_BLOCK_FOR_PIPELINE}}. The {{WRITE_CHUNK}} event is also a little
tricky. We need to emulate the {{writeChunk}} for a specific offset.
> 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.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)