Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A13B217D00 for ; Wed, 11 Feb 2015 18:34:20 +0000 (UTC) Received: (qmail 58769 invoked by uid 500); 11 Feb 2015 18:34:12 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 58731 invoked by uid 500); 11 Feb 2015 18:34:12 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 58712 invoked by uid 99); 11 Feb 2015 18:34:12 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Feb 2015 18:34:12 +0000 Date: Wed, 11 Feb 2015 18:34:12 +0000 (UTC) From: "Benedict (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-8789) Revisit how OutboundTcpConnection pools two connections for different message types MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-8789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14316731#comment-14316731 ] Benedict commented on CASSANDRA-8789: ------------------------------------- I think it makes more sense to have separate queues for each message type, that we round-robin over, so that a lot of large messages of one type can never unduly delay small messages of another. This permits us to coalesce more messages (with or without the coalescing patch of CASSANDRA-8692) > Revisit how OutboundTcpConnection pools two connections for different message types > ----------------------------------------------------------------------------------- > > Key: CASSANDRA-8789 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8789 > Project: Cassandra > Issue Type: Improvement > Components: Core > Reporter: Ariel Weisberg > Assignee: Ariel Weisberg > > I was looking at this trying to understand what messages flow over which connection. > For reads the request goes out over the command connection and the response comes back over the ack connection. > For writes the request goes out over the command connection and the response comes back over the command connection. > Reads get a dedicated socket for responses. Mutation commands and responses both travel over the same socket along with read requests. > Sockets are used uni-directional so there are actually four sockets in play and four threads at each node (2 inbounded, 2 outbound). > CASSANDRA-488 doesn't leave a record what the impact of this change was. If someone remembers what situations were made better it would be good to know. > I am not clear on when/how this is helpful. The consumer side shouldn't be blocking so the only head of line blocking issue is the time it takes to transfer data over the wire. > If message size is the cause of blocking issues then the current design mixes small messages and large messages on the same connection retaining the head of line blocking. > Read requests share the same connection as write requests (which are large), and write acknowledgments (which are small) share the same connections as write requests. The only winner is read acknowledgements. -- This message was sent by Atlassian JIRA (v6.3.4#6332)