cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbel...@apache.org
Subject svn commit: r767307 - in /incubator/cassandra/trunk: conf/ src/org/apache/cassandra/config/ src/org/apache/cassandra/net/ src/org/apache/cassandra/service/ src/org/apache/cassandra/utils/ test/conf/
Date Tue, 21 Apr 2009 21:34:47 GMT
Author: jbellis
Date: Tue Apr 21 21:34:46 2009
New Revision: 767307

URL: http://svn.apache.org/viewvc?rev=767307&view=rev
Log:
configurable ListenAddress setting.  allows running multiple instances of Cassandra
on a single machine or VM.  patch and review by Per Mellqvist, Eric Evans, and
jbellis 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/src/org/apache/cassandra/utils/FBUtilities.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=767307&r1=767306&r2=767307&view=diff
==============================================================================
--- incubator/cassandra/trunk/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/conf/storage-conf.xml Tue Apr 21 21:34:46 2009
@@ -14,6 +14,7 @@
    <RpcTimeoutInMillis>5000</RpcTimeoutInMillis>
    <JobTrackerHost>tdsearch001.sf2p.facebook.com</JobTrackerHost>
    <JobJarFileLocation>C:\Engagements\Cassandra-Nexus</JobJarFileLocation>
+   <ListenAddress>localhost</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=767307&r1=767306&r2=767307&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 21:34:46 2009
@@ -48,6 +48,7 @@
     private static int controlPort_ = 7001;
     private static int httpPort_ = 7002;
     private static int thriftPort_ = 9160;
+    private static String listenAddress_; // leave null so we can fall through to getLocalHost
     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=767307&r1=767306&r2=767307&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 21:34:46
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
)
@@ -81,12 +82,12 @@
         try
         {
             host_ = FBUtilities.getHostName();
-            port_ = port;
         }
         catch (UnknownHostException e)
         {
-            logger_.warn(LogUtil.throwableToString(e));
+            throw new RuntimeException(e);
         }
+        port_ = port;
     }
 
     public String getHost()

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=767307&r1=767306&r2=767307&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 21:34:46 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;
@@ -30,6 +33,7 @@
 import org.apache.thrift.transport.TTransportFactory;
 import org.apache.thrift.TProcessorFactory;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.utils.FBUtilities;
 
 /**
  * This class supports two methods for creating a Cassandra node daemon, 
@@ -65,7 +69,7 @@
         Cassandra.Processor processor = new Cassandra.Processor(peerStorageServer);
 
         // Transport
-        TServerSocket tServerSocket =  new TServerSocket(listenPort);
+        TServerSocket tServerSocket = new TServerSocket(new InetSocketAddress(FBUtilities.getHostName(),
listenPort));
 
         // Protocol factory
         TProtocolFactory tProtocolFactory = new TBinaryProtocol.Factory();

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/utils/FBUtilities.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/utils/FBUtilities.java?rev=767307&r1=767306&r2=767307&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/utils/FBUtilities.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/utils/FBUtilities.java Tue Apr 21 21:34:46
2009
@@ -40,6 +40,8 @@
 import java.util.zip.Deflater;
 import java.util.zip.Inflater;
 
+import org.apache.cassandra.config.DatabaseDescriptor;
+
 /**
  * Author : Avinash Lakshman ( alakshman@facebook.com) & Prashant Malik ( pmalik@facebook.com
)
  */
@@ -148,6 +150,10 @@
 
     public static String getHostName() throws UnknownHostException
     {
+        if (DatabaseDescriptor.getListenAddress() != null)
+        {
+            return DatabaseDescriptor.getListenAddress();
+        }
         return getLocalAddress().getCanonicalHostName();
     }
 

Modified: incubator/cassandra/trunk/test/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/conf/storage-conf.xml?rev=767307&r1=767306&r2=767307&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/test/conf/storage-conf.xml Tue Apr 21 21:34:46 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