You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stu Hood (JIRA)" <ji...@apache.org> on 2011/02/04 21:04:32 UTC

[jira] Created: (CASSANDRA-2110) Local reads in client threads can throw IOError

Local reads in client threads can throw IOError
-----------------------------------------------

                 Key: CASSANDRA-2110
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
             Project: Cassandra
          Issue Type: Bug
            Reporter: Stu Hood
             Fix For: 0.8


When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (CASSANDRA-2110) Local reads in client threads can throw IOError

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12990721#comment-12990721 ] 

Jonathan Ellis commented on CASSANDRA-2110:
-------------------------------------------

I don't see anywhere we run a read on a client thread.  I see this:

                StageManager.getStage(Stage.READ).execute(new LocalReadRunnable(command, handler));


> Local reads in client threads can throw IOError
> -----------------------------------------------
>
>                 Key: CASSANDRA-2110
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>              Labels: io
>             Fix For: 0.8
>
>
> When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (CASSANDRA-2110) Local reads in client threads can throw IOError

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12990750#comment-12990750 ] 

Jonathan Ellis commented on CASSANDRA-2110:
-------------------------------------------

Ah, right. We do need to update range slice to match single-row reads.

> Local reads in client threads can throw IOError
> -----------------------------------------------
>
>                 Key: CASSANDRA-2110
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>            Priority: Minor
>              Labels: io
>             Fix For: 0.8
>
>
> When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (CASSANDRA-2110) Local reads in client threads can throw IOError

Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stu Hood updated CASSANDRA-2110:
--------------------------------

    Priority: Minor  (was: Major)

StorageProxy.getRangeSlice appears to be doing a local read in the client thread, but you're right... the problem isn't as widespread as I thought.

> Local reads in client threads can throw IOError
> -----------------------------------------------
>
>                 Key: CASSANDRA-2110
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>            Priority: Minor
>              Labels: io
>             Fix For: 0.8
>
>
> When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (CASSANDRA-2110) Local reads in client threads can throw IOError

Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12990713#comment-12990713 ] 

Stu Hood commented on CASSANDRA-2110:
-------------------------------------

Rather than trying to perform error handling in the client thread, I'd prefer to modifying the local read optimization to continue to skip the serialization, but to still perform the read in the read stage.

> Local reads in client threads can throw IOError
> -----------------------------------------------
>
>                 Key: CASSANDRA-2110
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>              Labels: io
>             Fix For: 0.8
>
>
> When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (CASSANDRA-2110) Local reads in client threads can throw IOError

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-2110.
---------------------------------------

       Resolution: Not A Problem
    Fix Version/s:     (was: 1.0)

Thrift will catch the IOError and return an InternalError to the client.  If anything this is better than the behavior we'd get moving it to a stage (a TimedOutException).

(We need to do the single-row reads in fetchRows on the stage so we get concurrency in the case of a multiget.)

> Local reads in client threads can throw IOError
> -----------------------------------------------
>
>                 Key: CASSANDRA-2110
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2110
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>            Priority: Minor
>              Labels: io
>
> When we trigger the "local read" optimization, and perform a read in the client thread (that would normally be performed in the stages), there is a chance that we will kill the client thread with an IOError.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira