You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (JIRA)" <ji...@apache.org> on 2015/09/19 01:14:04 UTC

[jira] [Commented] (CASSANDRA-10347) Bulk Loader API could not tolerate even node failure

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

Paulo Motta commented on CASSANDRA-10347:
-----------------------------------------

Unfortunately it's not trivial to tolerate node failures transparently, as this would require submitting hints or expecting clients to perform anti-entropy (repairs) after the node is back. In order to allow the client to ignore down nodes, I added option {{mapreduce.output.bulkoutputformat.ignorehosts}} to allow blacklisting down nodes, so they would know in advance it needs to run repair after the down node is back. Also added helper methods to {{CqlBulkOutputFormat}}: {{setIgnoreHosts}} and {{getIgnoreHosts}}.

Attaching 2.1 and 2.2+ patches. Tests will be available below:
* [2.1 dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.1-10347-dtest/]
* [2.1 testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.1-10347-testall/]
* [2.2 dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.2-10347-dtest/]
* [2.2 testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.2-10347-testall/]
* [3.0 dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.0-10347-dtest/]
* [3.0 testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.0-10347-testall/]
* [trunk dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-10347-dtest/]
* [trunk testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-10347-testall/]

> Bulk Loader API could not tolerate even node failure
> ----------------------------------------------------
>
>                 Key: CASSANDRA-10347
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10347
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Shenghua Wan
>            Assignee: Paulo Motta
>
> When user uses CqlBulkOutputFormat, it tries to stream to all the nodes in the token range, which includes the dead nodes. Therefore, the stream failed. There was a design in C* API to allow stream() method to have a list of ignore hosts, but it was not utilized.
> The empty-argument stream() method is called in all existing versions of C*, i.e.
> in v2.0.11, https://github.com/apache/cassandra/blob/cassandra-2.0.11/src/java/org/apache/cassandra/hadoop/AbstractBulkRecordWriter.java#L122
> in v2.1.5, https://github.com/apache/cassandra/blob/cassandra-2.1.5/src/java/org/apache/cassandra/hadoop/AbstractBulkRecordWriter.java#L122
> and current trunk branch https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java#L241



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