Author: jbellis
Date: Wed Oct 21 18:25:35 2009
New Revision: 828128
URL: http://svn.apache.org/viewvc?rev=828128&view=rev
Log:
r/m uses of EndPoint(port) constructor; rename EndPoint methods to make porting
easier; r/m gratuitous uses of getHost
patch by jbellis; reviewed by Brandon Williams for CASSANDRA-498
Added:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/
incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/CompactEndPointSerializationHelperTest.java
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/EndPointSnitch.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndPointSerializationHelper.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/EndPoint.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/UdpConnection.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
incubator/cassandra/trunk/test/unit/org/apache/cassandra/client/TestRingCache.java
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
Wed Oct 21 18:25:35 2009
@@ -184,7 +184,7 @@
private static void deliverHintsToEndpoint(EndPoint endPoint) throws
IOException, DigestMismatchException, InvalidRequestException, TimeoutException
{
if (logger_.isDebugEnabled())
- logger_.debug("Started hinted handoff for endPoint " +
endPoint.getHost());
+ logger_.debug("Started hinted handoff for endPoint " + endPoint);
String targetEPBytes = endPoint.getHost();
// 1. Scan through all the keys that we need to handoff
@@ -223,7 +223,7 @@
}
if (logger_.isDebugEnabled())
- logger_.debug("Finished hinted handoff for endpoint " +
endPoint.getHost());
+ logger_.debug("Finished hinted handoff for endpoint " + endPoint);
}
public void scheduleHandoffsFor(final ColumnFamilyStore columnFamilyStore)
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
Wed Oct 21 18:25:35 2009
@@ -49,7 +49,7 @@
byte[] hintedBytes = message.getHeader(RowMutation.HINT);
if ( hintedBytes != null && hintedBytes.length > 0 )
{
- EndPoint hint = EndPoint.fromBytes(hintedBytes);
+ EndPoint hint = EndPoint.getByAddress(hintedBytes);
if (logger_.isDebugEnabled())
logger_.debug("Adding hint for " + hint);
/* add necessary hints to this mutation */
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=828128&r1=828127&r2=828128&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 18:25:35 2009
@@ -211,7 +211,7 @@
{
EndPoint maxStorageEndpoint = new
EndPoint(maxEndpoint.getHost(), DatabaseDescriptor.getStoragePort());
Token<?> t = getBootstrapTokenFrom(maxStorageEndpoint);
- logger_.info("Setting token to " + t + " to assume load from "
+ maxEndpoint.getHost());
+ logger_.info("Setting token to " + t + " to assume load from "
+ maxEndpoint);
ss.updateToken(t);
}
}
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/EndPointSnitch.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/EndPointSnitch.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/EndPointSnitch.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/EndPointSnitch.java
Wed Oct 21 18:25:35 2009
@@ -31,8 +31,8 @@
* the 3rd octet. If they are the same then the hosts
* are in the same rack else different racks.
*/
- byte[] ip = getIPAddress(host.getHost());
- byte[] ip2 = getIPAddress(host2.getHost());
+ byte[] ip = host.getAddress();
+ byte[] ip2 = host2.getAddress();
return ( ip[2] == ip2[2] );
}
@@ -44,15 +44,9 @@
* the 2nd octet. If they are the same then the hosts
* are in the same datacenter else different datacenter.
*/
- byte[] ip = getIPAddress(host.getHost());
- byte[] ip2 = getIPAddress(host2.getHost());
+ byte[] ip = host.getAddress();
+ byte[] ip2 = host2.getAddress();
return ( ip[1] == ip2[1] );
}
-
- private byte[] getIPAddress(String host) throws UnknownHostException
- {
- InetAddress ia = InetAddress.getByName(host);
- return ia.getAddress();
- }
}
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndPointSerializationHelper.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndPointSerializationHelper.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndPointSerializationHelper.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndPointSerializationHelper.java
Wed Oct 21 18:25:35 2009
@@ -19,29 +19,18 @@
package org.apache.cassandra.net;
import java.io.*;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
public class CompactEndPointSerializationHelper
{
public static void serialize(EndPoint endPoint, DataOutputStream dos)
throws IOException
{
- dos.write(EndPoint.toBytes(endPoint));
+ dos.write(endPoint.getAddress());
}
public static EndPoint deserialize(DataInputStream dis) throws IOException
{
byte[] bytes = new byte[6];
dis.readFully(bytes, 0, bytes.length);
- return EndPoint.fromBytes(bytes);
- }
-
- public static void main(String[] args) throws Throwable
- {
- EndPoint ep = new EndPoint(7000);
- byte[] bytes = EndPoint.toBytes(ep);
- System.out.println(bytes.length);
- EndPoint ep2 = EndPoint.fromBytes(bytes);
- System.out.println(ep2);
+ return EndPoint.getByAddress(bytes);
}
}
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=828128&r1=828127&r2=828128&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 18:25:35 2009
@@ -29,11 +29,10 @@
import org.apache.cassandra.utils.FBUtilities;
import org.apache.log4j.Logger;
-public class EndPoint implements Serializable, Comparable<EndPoint>
+public class EndPoint
{
// logging and profiling.
private static Logger logger_ = Logger.getLogger(EndPoint.class);
- private static final long serialVersionUID = -4962625949179835907L;
private static Map<CharBuffer, String> hostNames_ = new
HashMap<CharBuffer, String>();
private String host_;
@@ -48,20 +47,6 @@
port_ = port;
}
- // create a local endpoint id
- public EndPoint(int port)
- {
- try
- {
- host_ = FBUtilities.getHostAddress();
- }
- catch (UnknownHostException e)
- {
- throw new RuntimeException(e);
- }
- port_ = port;
- }
-
public String getHost()
{
return host_;
@@ -95,33 +80,22 @@
return (host_ + port_).hashCode();
}
- public int compareTo(EndPoint rhs)
- {
- return host_.compareTo(rhs.host_);
- }
-
public String toString()
{
return (host_ + ":" + port_);
}
- public static EndPoint fromString(String str)
- {
- String[] values = str.split(":");
- return new EndPoint(values[0], Integer.parseInt(values[1]));
- }
-
- public static byte[] toBytes(EndPoint ep)
+ public byte[] getAddress()
{
ByteBuffer buffer = ByteBuffer.allocate(6);
- byte[] iaBytes = ep.getInetAddress().getAddress().getAddress();
+ byte[] iaBytes = getInetAddress().getAddress().getAddress();
buffer.put(iaBytes);
- buffer.put(MessagingService.toByteArray((short) ep.getPort()));
+ buffer.put(MessagingService.toByteArray((short)getPort()));
buffer.flip();
return buffer.array();
}
- public static EndPoint fromBytes(byte[] bytes)
+ public static EndPoint getByAddress(byte[] bytes)
{
ByteBuffer buffer = ByteBuffer.allocate(4);
System.arraycopy(bytes, 0, buffer.array(), 0, 4);
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/UdpConnection.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/net/UdpConnection.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/UdpConnection.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/UdpConnection.java
Wed Oct 21 18:25:35 2009
@@ -56,8 +56,7 @@
public void init(int port) throws IOException
{
- // TODO: get TCP port from config and add one.
- localEndPoint_ = new EndPoint(port);
+ localEndPoint_ = new EndPoint(FBUtilities.getHostAddress(), port);
socketChannel_ = DatagramChannel.open();
socketChannel_.socket().bind(localEndPoint_.getInetAddress());
socketChannel_.socket().setReuseAddress(true);
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
Wed Oct 21 18:25:35 2009
@@ -81,9 +81,9 @@
if ( !target.equals(hint) )
{
Message hintedMessage =
rm.makeRowMutationMessage();
- hintedMessage.addHeader(RowMutation.HINT,
EndPoint.toBytes(hint) );
+ hintedMessage.addHeader(RowMutation.HINT,
hint.getAddress());
if (logger.isDebugEnabled())
- logger.debug("Sending the hint of " +
hint.getHost() + " to " + target.getHost());
+ logger.debug("Sending the hint of " + hint
+ " to " + target);
messageMap.put(target, hintedMessage);
}
else
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=828128&r1=828127&r2=828128&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 18:25:35 2009
@@ -38,6 +38,7 @@
import org.apache.cassandra.tools.MembershipCleanerVerbHandler;
import org.apache.cassandra.utils.FileUtils;
import org.apache.cassandra.utils.LogUtil;
+import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.io.SSTableReader;
import org.apache.log4j.Logger;
@@ -161,7 +162,7 @@
public synchronized void addBootstrapSource(EndPoint s)
{
if (logger_.isDebugEnabled())
- logger_.debug("Added " + s.getHost() + " as a bootstrap source");
+ logger_.debug("Added " + s + " as a bootstrap source");
bootstrapSet.add(s);
}
@@ -170,7 +171,7 @@
bootstrapSet.remove(s);
if (logger_.isDebugEnabled())
- logger_.debug("Removed " + s.getHost() + " as a bootstrap source");
+ logger_.debug("Removed " + s + " as a bootstrap source");
if (bootstrapSet.isEmpty())
{
SystemTable.setBootstrapped();
@@ -251,8 +252,8 @@
public void start() throws IOException
{
storageMetadata_ = SystemTable.initMetadata();
- tcpAddr_ = new EndPoint(DatabaseDescriptor.getStoragePort());
- udpAddr_ = new EndPoint(DatabaseDescriptor.getControlPort());
+ tcpAddr_ = new EndPoint(FBUtilities.getHostAddress(),
DatabaseDescriptor.getStoragePort());
+ udpAddr_ = new EndPoint(FBUtilities.getHostAddress(),
DatabaseDescriptor.getControlPort());
isBootstrapMode = DatabaseDescriptor.isAutoBootstrap()
&&
!(DatabaseDescriptor.getSeeds().contains(udpAddr_.getHost()) ||
SystemTable.isBootstrapped());
@@ -400,7 +401,7 @@
if (bootstrapState)
{
if (logger_.isDebugEnabled())
- logger_.debug(ep.getHost() + " is in bootstrap state.");
+ logger_.debug(ep + " is in bootstrap state.");
}
if (nodeIdState != null)
{
Modified:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/client/TestRingCache.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/client/TestRingCache.java?rev=828128&r1=828127&r2=828128&view=diff
==============================================================================
---
incubator/cassandra/trunk/test/unit/org/apache/cassandra/client/TestRingCache.java
(original)
+++
incubator/cassandra/trunk/test/unit/org/apache/cassandra/client/TestRingCache.java
Wed Oct 21 18:25:35 2009
@@ -67,8 +67,8 @@
EndPoint endPoints[] = ringCache.getEndPoint(row);
String hosts="";
for (int i=0; i<endPoints.length; i++)
- hosts = hosts + ((i>0) ? "," : "") + endPoints[i].getHost();
- System.out.println("hosts with key " + row + " : " + hosts + ";
choose " + endPoints[0].getHost());
+ hosts = hosts + ((i>0) ? "," : "") + endPoints[i];
+ System.out.println("hosts with key " + row + " : " + hosts + ";
choose " + endPoints[0]);
// now, read the row back directly from the host owning the row
locally
setup(endPoints[0].getHost(), endPoints[0].getPort());
Added:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/CompactEndPointSerializationHelperTest.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/CompactEndPointSerializationHelperTest.java?rev=828128&view=auto
==============================================================================
---
incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/CompactEndPointSerializationHelperTest.java
(added)
+++
incubator/cassandra/trunk/test/unit/org/apache/cassandra/net/CompactEndPointSerializationHelperTest.java
Wed Oct 21 18:25:35 2009
@@ -0,0 +1,20 @@
+package org.apache.cassandra.net;
+
+import java.net.UnknownHostException;
+
+import org.junit.Test;
+
+import org.apache.cassandra.utils.FBUtilities;
+
+public class CompactEndPointSerializationHelperTest
+{
+ @Test
+ public void testSerialize() throws UnknownHostException
+ {
+ EndPoint ep = new EndPoint(FBUtilities.getHostAddress(), 7000);
+ byte[] bytes = ep.getAddress();
+ System.out.println(bytes.length);
+ EndPoint ep2 = EndPoint.getByAddress(bytes);
+ System.out.println(ep2);
+ }
+}