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

Christian Spriegel commented on CASSANDRA-7886:
-----------------------------------------------

[~slebresne]: Sorry, I meant CQLSH and not CQL. With "the standard CQL client" 
I meant the CQLSH client that was installed with the debian packages.

Regarding the ErrorMessage class: A new error code "READ_FAILURE" was 
introduced with my patch. But no new fields were added the ErrorMessage. I 
assume you worry about clients not being able to handle the new code. In my 
opinion any client-code that does not have a default-case should be punished. 
So I would not hestitate to add it ;-)

I assume with CQL 4 (CASSANDRA-8043) a clean code handling and additional 
fields for be implemented for read_failures?
{code}
        public void encode(ErrorMessage msg, ByteBuf dest, int version)
        {
            dest.writeInt(msg.error.code().value); // TODO: make sure 
READ_FAILURE is only sent for CQL >=4
            CBUtil.writeString(msg.error.getMessage(), dest);

            switch (msg.error.code())
            {
                //case READ_FAILURE:  // read failure case not implemented so 
far!
                //      if(version > x) // with the next version this could be 
implemented
                //      {
                //            RequestFailureException rfe = 
(RequestFailureException) msg.error;
                //            dest.writeInt(rfe.received);
                //            dest.writeInt(rfe.blockFor);
                //            dest.writeInt(rfe.failures);
                //      }
                //      break;
{code}

> TombstoneOverwhelmingException should not wait for timeout
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-7886
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7886
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>         Environment: Tested with Cassandra 2.0.8
>            Reporter: Christian Spriegel
>            Assignee: Christian Spriegel
>            Priority: Minor
>             Fix For: 3.0
>
>         Attachments: 7886_v1.txt
>
>
> *Issue*
> When you have TombstoneOverwhelmingExceptions occuring in queries, this will 
> cause the query to be simply dropped on every data-node, but no response is 
> sent back to the coordinator. Instead the coordinator waits for the specified 
> read_request_timeout_in_ms.
> On the application side this can cause memory issues, since the application 
> is waiting for the timeout interval for every request.Therefore, if our 
> application runs into TombstoneOverwhelmingExceptions, then (sooner or later) 
> our entire application cluster goes down :-(
> *Proposed solution*
> I think the data nodes should send a error message to the coordinator when 
> they run into a TombstoneOverwhelmingException. Then the coordinator does not 
> have to wait for the timeout-interval.



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

Reply via email to