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

Tyler Hobbs commented on CASSANDRA-8592:
----------------------------------------

bq. IOException is a checked exception so to rethrow it we need to change the 
signature of IVerbHandler.doVerb(). Is this what you meant or did I 
misunderstand you?

Right, I think it would be fine to make it a checked exception.

bq. I found it easier to specify the keyspace that should have failed writes

That looks good to me.  Whatever negligible impact there is from checking a 
single, final boolean here is worth it to be able to test the code.

bq. ccmlib/node.py needs to use JVM_OPTS instead of JVM_EXTRA_OPTS, as 
JVM_EXTRA_OPTS is not used by bin/cassandra

Hmm, {{JVM_EXTRA_OPTS}} should still be picked by in {{cassandra-env.sh}} when 
that's sourced.  A quick test with ccm on the commandline seems to indicate 
that it works.

bq. {{python-driver/_init_.py}} needed {{ReadFailure}} and {{WriteFailure}}

Those changes look good to me.  Thanks!

bq. I'm not sure how to best keep track of the changes in ccmlib, dtest and the 
python-driver. I can create pull requests if required.

ccmlib changes can go in at any time (assuming we do need them).  Opening a 
pull request for that is fine.

Dtests changes should normally be committed right after the Cassandra changes 
are committed.  You can open a pull request for those as well.

As for the python driver, once the Cassandra changes are committed, we can 
start a ticket at https://datastax-oss.atlassian.net/projects/PYTHON and link 
to a branch with our suggested changes.  (The driver maintainer may want to 
take a different approach.)

A couple more review comments:
 * The javadoc for StorageProxy.hintMutations needs to be updated
 * Why did you make AbstractWriteResponseHandler generic?  It doesn't seem like 
that's required or buys us anything.  If I've missed something and there is 
value in making it generic, it looks like a few more changes are required (I 
spotted some usages in StorageProxy that don't use the generic class version).
 * The new dtest module has a lot of unused imports
 * Since the dtest depends on having CURRENT_VERSION set to VERSION_4, go ahead 
and update CURRENT_VERSION in your branch.

> Add WriteFailureException
> -------------------------
>
>                 Key: CASSANDRA-8592
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8592
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API, Core
>            Reporter: Tyler Hobbs
>            Assignee: Stefania
>              Labels: client-impacting
>             Fix For: 3.0
>
>
> Similar to what CASSANDRA-7886 did for reads, we should add a 
> WriteFailureException and have replicas signal a failure while handling a 
> write to the coordinator.



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

Reply via email to