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 2010/01/30 01:50:53 UTC
svn commit: r904698 - in
/incubator/cassandra/trunk/src/java/org/apache/cassandra:
dht/BootStrapper.java io/Streaming.java service/StorageService.java
Author: jbellis
Date: Sat Jan 30 00:50:52 2010
New Revision: 904698
URL: http://svn.apache.org/viewvc?rev=904698&view=rev
Log:
imrove Streaming commenting. patch by jbellis
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.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=904698&r1=904697&r2=904698&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 Sat Jan 30 00:50:52 2010
@@ -43,15 +43,6 @@
import com.google.common.collect.ArrayListMultimap;
- /**
- * This class handles the bootstrapping responsibilities for the local endpoint.
- *
- * - bootstrapTokenVerb asks the most-loaded node what Token to use to split its Range in two.
- * - streamRequestVerb tells source nodes to send us the necessary Ranges
- * - source nodes send streamInitiateVerb to us to say "get ready to receive data" [if there is data to send]
- * - when we have everything set up to receive the data, we send streamInitiateDoneVerb back to the source nodes and they start streaming
- * - when streaming is complete, we send streamFinishedVerb to the source so it can clean up on its end
- */
public class BootStrapper
{
private static final Logger logger = Logger.getLogger(BootStrapper.class);
@@ -89,8 +80,6 @@
InetAddress source = entry.getKey();
for (String table : DatabaseDescriptor.getNonSystemTables())
StorageService.instance.addBootstrapSource(source, table);
- if (logger.isDebugEnabled())
- logger.debug("Requesting from " + source + " ranges " + StringUtils.join(entry.getValue(), ", "));
Streaming.requestRanges(source, entry.getValue());
}
}
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.java?rev=904698&r1=904697&r2=904698&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.java Sat Jan 30 00:50:52 2010
@@ -48,6 +48,19 @@
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
+/**
+ * This class handles streaming data from one node to another.
+ *
+ * For bootstrap,
+ * 1. BOOTSTRAP_TOKEN asks the most-loaded node what Token to use to split its Range in two.
+ * 2. STREAM_REQUEST tells source nodes to send us the necessary Ranges
+ * 3. source nodes send STREAM_INITIATE to us to say "get ready to receive data" [if there is data to send]
+ * 4. when we have everything set up to receive the data, we send STREAM_INITIATE_DONE back to the source nodes and they start streaming
+ * 5. when streaming is complete, we send STREAM_FINISHED to the source so it can clean up on its end
+ *
+ * For unbootstrap, the leaving node starts with step 3 (1 and 2 are skipped entirely). This is why
+ * STREAM_INITIATE is a separate verb, rather than just a reply to STREAM_REQUEST; the REQUEST is optional.
+ */
public class Streaming
{
private static Logger logger = Logger.getLogger(Streaming.class);
@@ -147,6 +160,8 @@
*/
public static void requestRanges(InetAddress source, Collection<Range> ranges)
{
+ if (logger.isDebugEnabled())
+ logger.debug("Requesting from " + source + " ranges " + StringUtils.join(ranges, ", "));
StreamRequestMetadata streamRequestMetadata = new StreamRequestMetadata(FBUtilities.getLocalAddress(), ranges);
Message message = StreamRequestMessage.makeStreamRequestMessage(new StreamRequestMessage(streamRequestMetadata));
MessagingService.instance.sendOneWay(message, source);
@@ -216,7 +231,7 @@
public String getNewFileNameFromOldContextAndNames(Map<String, String> fileNames,
Map<String, String> pathNames,
- StreamContextManager.StreamContext streamContext)
+ StreamContextManager.StreamContext streamContext)
{
File sourceFile = new File( streamContext.getTargetFile() );
String[] piece = FBUtilities.strip(sourceFile.getName(), "-");
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=904698&r1=904697&r2=904698&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 Sat Jan 30 00:50:52 2010
@@ -707,14 +707,9 @@
}
}
- // Finally we have a list of addresses and ranges to
- // stream. Proceed to stream
+ // Finally we have a list of addresses and ranges to stream. Proceed to stream
for (Map.Entry<InetAddress, Collection<Range>> entry : sourceRanges.asMap().entrySet())
- {
- if (logger_.isDebugEnabled())
- logger_.debug("Requesting from " + entry.getKey() + " ranges " + StringUtils.join(entry.getValue(), ", "));
Streaming.requestRanges(entry.getKey(), entry.getValue());
- }
}
}