[
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: [email protected]
For additional commands, e-mail: [email protected]