[
https://issues.apache.org/jira/browse/CASSANDRA-705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12803087#action_12803087
]
Jaakko Laine commented on CASSANDRA-705:
----------------------------------------
Sorry for chiming in so late. Did not notice this involved the Gossiper too.
There are some problems currently:
(1) Gossiper routinely tries to contact dead nodes, which causes connection
refused exceptions a lot
(2) Using tcp will always re-create connection pool to the dead node
(3) If there are network partitions (or anything that causes connection attempt
not to return immediately), connection.write will block. This may cause
Gossiper to block in sendGossip for minutes.
(4) If a node is stuck for some reason and is not reading from its sockets,
other Gossipers writing to it will block as soon as their socket send buffer is
full. Once this happens, also their incoming sockets will not be read from.
Unless the stuck node either manages to continue or closes its connections (or
crashes), this will eventually cause all Gossipers in the whole cluster to
block.
> explore replacing socket nio with blocking io
> ---------------------------------------------
>
> Key: CASSANDRA-705
> URL: https://issues.apache.org/jira/browse/CASSANDRA-705
> Project: Cassandra
> Issue Type: Task
> Components: Core
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Priority: Minor
> Fix For: 0.6
>
> Attachments:
> 0001-make-shutdown-non-reentrant-and-make-MS-a-true-singlet.txt,
> 0002-replace-tcp-socket-reads-w-blocking-i-o.txt,
> 0003-replace-tcp-writes-w-blocking-i-o.txt,
> 0004-implement-streaming-w-blocking-io.txt,
> 0005-convert-gossip-to-use-tcp.-this-finishes-the-removal-o.txt,
> 0006-handle-node-failure.patch, 0007-simplify-header-code.patch,
> 0008-fix-streaming.patch
>
>
> MessagingService's nonblocking io has been a source of bugs both in our code
> and in the JVM in every release of Cassandra. Time to explore moving to
> blocking i/o, which is simpler, more robust (in terms of the JVM
> implementation), and possibly more performant as well
> (http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers.html).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.