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

Tyler Hobbs updated CASSANDRA-9061:
-----------------------------------
    Attachment: 9061-suggested.txt

I think we can take a somewhat simpler approach.  I've attached a patch that is 
untested but demonstrates roughly what I'm thinking of.  (Most of the diff is 
just an indentation change.)

I don't think we really need to track in-progress or successful operations.  We 
can rely on the connection's {{in_flight}} count to know if there are 
in-progress operations.  Successful operations don't require any further 
action.  We don't need to track the request ID, because it's automatically 
released by the connection when it gets a response, and we can easily get a new 
one.  Am I missing something in my suggested approach?

I think we're going to need a dtest to exercise this.  You could start from 
{{cqlsh_tests.TestCqlsh.test_copy_to()}}, setting a low enough write timeout 
that a large number of operations fail.

> Add backoff and recovery to cqlsh COPY FROM when write timeouts occur
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-9061
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9061
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Tyler Hobbs
>            Assignee: Carl Yeksigian
>            Priority: Minor
>              Labels: cqlsh
>             Fix For: 2.1.x
>
>         Attachments: 9061-2.1.txt, 9061-suggested.txt
>
>
> Previous versions of COPY FROM didn't handle write timeouts because it was 
> rarely fast enough for that to matter.  Now that performance has improved, 
> write timeouts are more likely to occur.  We should handle these by backing 
> off and retrying the operation.



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

Reply via email to