You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/10/21 16:18:25 UTC

svn commit: r828030 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra: dht/BootStrapper.java locator/AbstractReplicationStrategy.java locator/RackAwareStrategy.java locator/RackUnawareStrategy.java net/EndPoint.java service/StorageService.java

Author: jbellis
Date: Wed Oct 21 14:18:24 2009
New Revision: 828030

URL: http://svn.apache.org/viewvc?rev=828030&view=rev
Log:
Make EndPoint objects immmutable, so hashcode can't change (making the EndPoint potentially disappear from a map)
patch by jbellis; reviewed by Sandeep Tata for CASSANDRA-497

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackAwareStrategy.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java Wed Oct 21 14:18:24 2009
@@ -209,8 +209,8 @@
 
             if (!maxEndpoint.equals(StorageService.getLocalStorageEndPoint()))
             {
-                StorageService.instance().retrofitPorts(Arrays.asList(maxEndpoint));
-                Token<?> t = getBootstrapTokenFrom(maxEndpoint);
+                EndPoint maxStorageEndpoint = new EndPoint(maxEndpoint.getHost(), DatabaseDescriptor.getStoragePort());
+                Token<?> t = getBootstrapTokenFrom(maxStorageEndpoint);
                 logger_.info("Setting token to " + t + " to assume load from " + maxEndpoint.getHost());
                 ss.updateToken(t);
             }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java Wed Oct 21 14:18:24 2009
@@ -101,20 +101,21 @@
                 tokenToEndPointMap.remove(t);
             }
         }
-        retrofitPorts(list);
-        return list.toArray(new EndPoint[list.size()]);
+        return retrofitPorts(list).toArray(new EndPoint[list.size()]);
     }
 
     /*
      * This method changes the ports of the endpoints from
      * the control port to the storage ports.
     */
-    public void retrofitPorts(List<EndPoint> eps)
+    public List<EndPoint> retrofitPorts(List<EndPoint> eps)
     {
+        List<EndPoint> retrofitted = new ArrayList<EndPoint>();
         for ( EndPoint ep : eps )
         {
-            ep.setPort(storagePort_);
+            retrofitted.add(new EndPoint(ep.getHost(), ep.getPort()));
         }
+        return retrofitted;
     }
 
     private Map<EndPoint, EndPoint> getHintedMapForEndpoints(EndPoint[] topN)

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackAwareStrategy.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackAwareStrategy.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackAwareStrategy.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackAwareStrategy.java Wed Oct 21 14:18:24 2009
@@ -117,7 +117,6 @@
                 foundCount++;
             }
         }
-        retrofitPorts(list);
-        return list.toArray(new EndPoint[list.size()]);
+        return retrofitPorts(list).toArray(new EndPoint[list.size()]);
     }
 }
\ No newline at end of file

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java Wed Oct 21 14:18:24 2009
@@ -77,7 +77,6 @@
         List<EndPoint> list = new ArrayList<EndPoint>();
         for (Token t: tokenList)
             list.add(tokenToEndPointMap.get(t));
-        retrofitPorts(list);
-        return list.toArray(new EndPoint[list.size()]);
+        return retrofitPorts(list).toArray(new EndPoint[list.size()]);
     }
 }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java Wed Oct 21 14:18:24 2009
@@ -88,11 +88,6 @@
         return port_;
     }
 
-    public void setPort(int port)
-    {
-        port_ = port;
-    }
-
     public InetSocketAddress getInetAddress()
     {
         if (ia_ == null || ia_.isUnresolved())

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=828030&r1=828029&r2=828030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Wed Oct 21 14:18:24 2009
@@ -857,11 +857,6 @@
         return replicationStrategy_.getHintedStorageEndPoints(partitioner_.getToken(key), naturalEndpoints);
     }
 
-    public void retrofitPorts(List<EndPoint> eps)
-    {
-        replicationStrategy_.retrofitPorts(eps);
-    }
-
     /**
      * This function finds the most suitable endpoint given a key.
      * It checks for locality and alive test.