You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (JIRA)" <ji...@apache.org> on 2011/07/21 01:05:58 UTC

[jira] [Issue Comment Edited] (CASSANDRA-1405) Switch to THsHaServer, redux

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

Brandon Williams edited comment on CASSANDRA-1405 at 7/20/11 11:05 PM:
-----------------------------------------------------------------------

This looks good, but a couple of things:

{noformat}

 WARN 23:01:42,331 Got an IOException in internalRead!
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcher.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202)
        at sun.nio.ch.IOUtil.read(IOUtil.java:175)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)
        at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:141)
        at org.apache.thrift.server.TNonblockingServer$FrameBuffer.internalRead(TNonblockingServer.java:668)
        at org.apache.thrift.server.TNonblockingServer$FrameBuffer.read(TNonblockingServer.java:457)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.handleRead(CustomTHsHaServer.java:228)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.select(CustomTHsHaServer.java:185)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.run(CustomTHsHaServer.java:157)
{noformat}
Let's push this to debug, the user shouldn't care if a client closed the socket.  This was in hsha mode, but a similar exception is raised for async (sync is silent though.)

Cursory perf test shows async to be about 50% slower than sync, but hsha appears nearly 20% faster.

      was (Author: brandon.williams):
    This looks good, but a couple of thing:

{noformat}

 WARN 23:01:42,331 Got an IOException in internalRead!
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcher.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202)
        at sun.nio.ch.IOUtil.read(IOUtil.java:175)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)
        at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:141)
        at org.apache.thrift.server.TNonblockingServer$FrameBuffer.internalRead(TNonblockingServer.java:668)
        at org.apache.thrift.server.TNonblockingServer$FrameBuffer.read(TNonblockingServer.java:457)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.handleRead(CustomTHsHaServer.java:228)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.select(CustomTHsHaServer.java:185)
        at org.apache.cassandra.thrift.CustomTHsHaServer$SelectorThread.run(CustomTHsHaServer.java:157)
{noformat}
Let's push this to debug, the user should care if a client closed the socket.  This was in hsha mode, but a similar exception is raised for async (sync is silent though.)

Cursory perf test shows async to be about 50% slower than sync, but hsha appears nearly 20% faster.
  
> Switch to THsHaServer, redux
> ----------------------------
>
>                 Key: CASSANDRA-1405
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1405
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.8.2
>
>         Attachments: 1405-Thrift-Patch-SVN.patch, libthrift-r1026391.jar, trunk-1405.patch
>
>
> Brian's patch to CASSANDRA-876  suggested using a custom TProcessorFactory subclass, overriding getProcessor to reset to a default state when a new client connects. It looks like this would allow dropping CustomTThreadPoolServer as well as allowing non-thread based servers. 

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