You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/06/06 18:32:18 UTC
[jira] [Commented] (CASSANDRA-9748) Can't see other nodes when
using multiple network interfaces
[ https://issues.apache.org/jira/browse/CASSANDRA-9748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16039420#comment-16039420 ]
ASF GitHub Bot commented on CASSANDRA-9748:
-------------------------------------------
Github user aweisberg commented on a diff in the pull request:
https://github.com/apache/cassandra/pull/111#discussion_r120443366
--- Diff: src/java/org/apache/cassandra/net/async/NettyFactory.java ---
@@ -125,10 +126,19 @@
* Determine the number of accept threads we need, which is based upon the number of listening sockets we will have.
* We'll have either 1 or 2 listen sockets, depending on if we use SSL or not in combination with non-SSL. If we have both,
* we'll have two sockets, and thus need two threads; else one socket and one thread.
+ *
+ * If the operator has configured multiple IP addresses (both {@link org.apache.cassandra.config.Config#broadcast_address}
+ * and {@link org.apache.cassandra.config.Config#listen_address} are configured), then we listen on another set of sockets
+ * - basically doubling the count. See CASSANDRA-9748 for more details.
*/
static int determineAcceptGroupSize(InternodeEncryption internode_encryption)
{
- return internode_encryption == InternodeEncryption.dc || internode_encryption == InternodeEncryption.rack ? 2 : 1;
+ int listenSocketCount = internode_encryption == InternodeEncryption.dc || internode_encryption == InternodeEncryption.rack ? 2 : 1;
+
+ if (MessagingService.shouldListenOnBroadcastAddress())
+ listenSocketCount *= 2;
--- End diff --
Why do you need more threads to listen on more sockets? It's a non-blocking operation and more sockets doesn't indicate a need for more throughput?
> Can't see other nodes when using multiple network interfaces
> ------------------------------------------------------------
>
> Key: CASSANDRA-9748
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9748
> Project: Cassandra
> Issue Type: Improvement
> Components: Streaming and Messaging
> Environment: Cassandra 2.0.16; multi-DC configuration
> Reporter: Roman Bielik
> Assignee: Paulo Motta
> Priority: Minor
> Labels: docs-impacting
> Fix For: 2.2.5, 3.0.3, 3.2
>
> Attachments: system_node1.log, system_node2.log
>
>
> The idea is to setup a multi-DC environment across 2 different networks based on the following configuration recommendations:
> http://docs.datastax.com/en/cassandra/2.0/cassandra/configuration/configMultiNetworks.html
> Each node has 2 network interfaces. One used as a private network (DC1: 10.0.1.x and DC2: 10.0.2.x). The second one a "public" network where all nodes can see each other (this one has a higher latency).
> Using the following settings in cassandra.yaml:
> *seeds:* public IP (same as used in broadcast_address)
> *listen_address:* private IP
> *broadcast_address:* public IP
> *rpc_address:* 0.0.0.0
> *endpoint_snitch:* GossipingPropertyFileSnitch
> _(tried different combinations with no luck)_
> No firewall and no SSL/encryption used.
> The problem is that nodes do not see each other (a gossip problem I guess). The nodetool ring/status shows only the local node but not the other ones (even from the same DC).
> When I set listen_address to public IP, then everything works fine, but that is not the required configuration.
> _Note: Not using EC2 cloud!_
> netstat -anp | grep -E "(7199|9160|9042|7000)"
> tcp 0 0 0.0.0.0:7199 0.0.0.0:* LISTEN 3587/java
> tcp 0 0 10.0.1.1:9160 0.0.0.0:* LISTEN 3587/java
> tcp 0 0 10.0.1.1:9042 0.0.0.0:* LISTEN 3587/java
> tcp 0 0 10.0.1.1:7000 0.0.0.0:* LISTEN 3587/java
> tcp 0 0 127.0.0.1:7199 127.0.0.1:52874 ESTABLISHED 3587/java
> tcp 0 0 10.0.1.1:7199 10.0.1.1:39650 ESTABLISHED 3587/java
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org