cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbel...@apache.org
Subject svn commit: r767168 - in /incubator/cassandra/trunk: conf/storage-conf.xml src/org/apache/cassandra/config/DatabaseDescriptor.java src/org/apache/cassandra/net/EndPoint.java src/org/apache/cassandra/service/CassandraDaemon.java test/conf/storage-conf.xml
Date Tue, 21 Apr 2009 14:56:23 GMT
Author: jbellis
Date: Tue Apr 21 14:56:22 2009
New Revision: 767168

URL: http://svn.apache.org/viewvc?rev=767168&view=rev
Log:
configurable ListenAddress setting.  allows running multiple instances of Cassandra on a single
machine or VM.  patch by Per Mellqvist; reviewed by Eric Evans for #43

Modified:
    incubator/cassandra/trunk/conf/storage-conf.xml
    incubator/cassandra/trunk/src/org/apache/cassandra/config/DatabaseDescriptor.java
    incubator/cassandra/trunk/src/org/apache/cassandra/net/EndPoint.java
    incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraDaemon.java
    incubator/cassandra/trunk/test/conf/storage-conf.xml

Modified: incubator/cassandra/trunk/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/conf/storage-conf.xml?rev=767168&r1=767167&r2=767168&view=diff
==============================================================================
--- incubator/cassandra/trunk/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/conf/storage-conf.xml Tue Apr 21 14:56:22 2009
@@ -14,6 +14,7 @@
    <RpcTimeoutInMillis>5000</RpcTimeoutInMillis>
    <JobTrackerHost>tdsearch001.sf2p.facebook.com</JobTrackerHost>
    <JobJarFileLocation>C:\Engagements\Cassandra-Nexus</JobJarFileLocation>
+   <ListenAddress>127.0.0.1</ListenAddress>
    <StoragePort>7000</StoragePort>
    <ControlPort>7001</ControlPort>
    <ThriftPort>9160</ThriftPort>

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/config/DatabaseDescriptor.java?rev=767168&r1=767167&r2=767168&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/config/DatabaseDescriptor.java Tue
Apr 21 14:56:22 2009
@@ -48,6 +48,7 @@
     private static int controlPort_ = 7001;
     private static int httpPort_ = 7002;
     private static int thriftPort_ = 9160;
+    private static String listenAddress_ = "localhost";
     private static String clusterName_ = "Test";
     private static int replicationFactor_ = 3;
     private static long rpcTimeoutInMillis_ = 2000;
@@ -176,6 +177,11 @@
             if ( port != null )
                 storagePort_ = Integer.parseInt(port);
 
+            /* Local IP or hostname to bind services to */
+            String listenAddress = xmlUtils.getNodeValue("/Storage/ListenAddress");
+            if ( listenAddress != null)
+                listenAddress_ = listenAddress;
+            
             /* UDP port for control messages */
             port = xmlUtils.getNodeValue("/Storage/ControlPort");
             if ( port != null )
@@ -800,4 +806,9 @@
             super(message);
         }
     }
+
+    public static String getListenAddress()
+    {
+        return listenAddress_;
+    }
 }

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/net/EndPoint.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/net/EndPoint.java?rev=767168&r1=767167&r2=767168&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/net/EndPoint.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/net/EndPoint.java Tue Apr 21 14:56:22
2009
@@ -30,6 +30,7 @@
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.LogUtil;
 import org.apache.log4j.Logger;
+import org.apache.cassandra.config.DatabaseDescriptor;
 
 /**
  * Author : Avinash Lakshman ( alakshman@facebook.com) & Prashant Malik ( pmalik@facebook.com
)
@@ -80,7 +81,14 @@
     {
         try
         {
-            host_ = FBUtilities.getHostName();
+            if(DatabaseDescriptor.getListenAddress() != null)
+            {
+                host_ = DatabaseDescriptor.getListenAddress();
+            }
+            else
+            {
+                host_ = FBUtilities.getHostName();
+            }
             port_ = port;
         }
         catch (UnknownHostException e)

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraDaemon.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraDaemon.java?rev=767168&r1=767167&r2=767168&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraDaemon.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraDaemon.java Tue Apr
21 14:56:22 2009
@@ -20,6 +20,9 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.InetSocketAddress;
+import java.net.InetAddress;
 
 import org.apache.log4j.Logger;
 import org.apache.thrift.protocol.TBinaryProtocol;
@@ -65,7 +68,22 @@
         Cassandra.Processor processor = new Cassandra.Processor(peerStorageServer);
 
         // Transport
-        TServerSocket tServerSocket =  new TServerSocket(listenPort);
+        TServerSocket tServerSocket =  null;
+        try
+        {
+            // Make server socket
+            ServerSocket serverSocket = new ServerSocket();
+            // Prevent 2MSL delay problem on server restarts
+            serverSocket.setReuseAddress(true);
+            // Bind to listening port
+            serverSocket.bind(new InetSocketAddress(DatabaseDescriptor.getListenAddress(),
listenPort));
+            tServerSocket =  new TServerSocket(serverSocket);
+        }
+        catch (IOException ioe)
+        {
+            throw new TTransportException("Could not create ServerSocket on address "
+                    + DatabaseDescriptor.getListenAddress() + ".");
+        }
 
         // Protocol factory
         TProtocolFactory tProtocolFactory = new TBinaryProtocol.Factory();

Modified: incubator/cassandra/trunk/test/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/conf/storage-conf.xml?rev=767168&r1=767167&r2=767168&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/test/conf/storage-conf.xml Tue Apr 21 14:56:22 2009
@@ -14,6 +14,7 @@
    <RpcTimeoutInMillis>5000</RpcTimeoutInMillis>
    <JobTrackerHost>tdsearch001.sf2p.facebook.com</JobTrackerHost>
    <JobJarFileLocation>C:\Engagements\Cassandra-Nexus</JobJarFileLocation>
+   <ListenAddress>127.0.0.1</ListenAddress>
    <StoragePort>7000</StoragePort>
    <ControlPort>7001</ControlPort>
    <ThriftPort>7001</ThriftPort>



Mime
View raw message