Author: gdusbabek
Date: Mon Jan 18 18:34:22 2010
New Revision: 900499
URL: http://svn.apache.org/viewvc?rev=900499&view=rev
Log:
merge from 0.5
Modified:
incubator/cassandra/trunk/ (props changed)
incubator/cassandra/trunk/CHANGES.txt
incubator/cassandra/trunk/README.txt
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java
(props changed)
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java
(props changed)
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java
(props changed)
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java
(props changed)
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java
(props changed)
incubator/cassandra/trunk/src/java/org/ (props changed)
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/Streaming.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
incubator/cassandra/trunk/test/unit/org/ (props changed)
Propchange: incubator/cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,3 +1,3 @@
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5:888872-899284
+/incubator/cassandra/branches/cassandra-0.5:888872-900497
Modified: incubator/cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/CHANGES.txt?rev=900499&r1=900498&r2=900499&view=diff
==============================================================================
--- incubator/cassandra/trunk/CHANGES.txt (original)
+++ incubator/cassandra/trunk/CHANGES.txt Mon Jan 18 18:34:22 2010
@@ -11,6 +11,8 @@
performance (CASSANDRA-675)
* wait for table flush before streaming data back to a bootstrapping node.
(CASSANDRA-696)
+ * keep track of bootstrapping sources by table so that bootstrapping doesn't
+ give the indication of finishing early (CASSANDRA-673)
0.5.0 RC3
Modified: incubator/cassandra/trunk/README.txt
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/README.txt?rev=900499&r1=900498&r2=900499&view=diff
==============================================================================
--- incubator/cassandra/trunk/README.txt (original)
+++ incubator/cassandra/trunk/README.txt Mon Jan 18 18:34:22 2010
@@ -22,6 +22,7 @@
* tar -zxvf cassandra-$VERSION.tgz
* cd cassandra-$VERSION
* sudo mkdir -p /var/log/cassandra
+ * sudo chown -R `whoami` /var/log/cassandra
* sudo mkdir -p /var/lib/cassandra
* sudo chown -R `whoami` /var/lib/cassandra
Propchange:
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-900497
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java:749219-768588
Propchange:
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,5 +1,5 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-900497
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java:749219-794428
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/column_t.java:749219-768588
Propchange:
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-900497
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:749219-768588
Propchange:
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-900497
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:749219-768588
Propchange:
incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,5 +1,5 @@
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-900497
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:749219-794428
/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:749219-768588
Propchange: incubator/cassandra/trunk/src/java/org/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3/src/java/org:774578-796573
/incubator/cassandra/branches/cassandra-0.4/src/java/org:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/src/java/org:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/src/java/org:888872-900497
/incubator/cassandra/trunk/src/java/org:749219-769885
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=900499&r1=900498&r2=900499&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Mon Jan 18 18:34:22 2010
@@ -805,6 +805,13 @@
return tables_;
}
+ public static List<String> getNonSystemTables()
+ {
+ List<String> tables = new ArrayList<String>(tables_);
+ tables.remove(Table.SYSTEM_TABLE);
+ return Collections.unmodifiableList(tables);
+ }
+
public static String getTable(String tableName)
{
assert tableName != null;
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=900499&r1=900498&r2=900499&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
Mon Jan 18 18:34:22 2010
@@ -87,7 +87,8 @@
for (Map.Entry<InetAddress, Collection<Range>> entry :
getWorkMap(rangesWithSourceTarget).asMap().entrySet())
{
InetAddress source = entry.getKey();
- StorageService.instance.addBootstrapSource(source);
+ 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/SSTableReader.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java?rev=900499&r1=900498&r2=900499&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
Mon Jan 18 18:34:22 2010
@@ -186,6 +186,7 @@
long start = System.currentTimeMillis();
SSTableReader sstable = new SSTableReader(dataFileName, partitioner);
+ logger.info("Sampling index for " + dataFileName);
sstable.loadIndexFile();
sstable.loadBloomFilter();
if (keysCacheFraction > 0)
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=900499&r1=900498&r2=900499&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
Mon Jan 18 18:34:22 2010
@@ -51,6 +51,7 @@
public class Streaming
{
private static Logger logger = Logger.getLogger(Streaming.class);
+ private static String TABLE_NAME = "STREAMING-TABLE-NAME";
public static final long RING_DELAY = 30 * 1000; // delay after which we
assume ring has stablized
/**
@@ -127,6 +128,7 @@
StreamManager.instance(target).addFilesToStream(streamContexts);
StreamInitiateMessage biMessage = new
StreamInitiateMessage(streamContexts);
Message message =
StreamInitiateMessage.makeStreamInitiateMessage(biMessage);
+ message.addHeader(Streaming.TABLE_NAME, table.getBytes());
if (logger.isDebugEnabled())
logger.debug("Sending a stream initiate message to " + target + "
...");
MessagingService.instance().sendOneWay(message, target);
@@ -163,6 +165,8 @@
{
byte[] body = message.getMessageBody();
ByteArrayInputStream bufIn = new ByteArrayInputStream(body);
+ if (logger.isDebugEnabled())
+ logger.debug(String.format("StreamInitiateVerbeHandler.doVerb
%s %s %s", message.getVerb(), message.getMessageId(),
message.getMessageType()));
try
{
@@ -173,7 +177,7 @@
{
if (logger.isDebugEnabled())
logger.debug("no data needed from " +
message.getFrom());
-
StorageService.instance.removeBootstrapSource(message.getFrom());
+
StorageService.instance.removeBootstrapSource(message.getFrom(), new
String(message.getHeader(Streaming.TABLE_NAME)));
return;
}
@@ -315,7 +319,7 @@
/* If we're done with everything for this host, remove from
bootstrap sources */
if (StreamContextManager.isDone(host) &&
StorageService.instance.isBootstrapMode())
{
- StorageService.instance.removeBootstrapSource(host);
+ StorageService.instance.removeBootstrapSource(host,
streamContext.getTable());
}
}
}
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=900499&r1=900498&r2=900499&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
Mon Jan 18 18:34:22 2010
@@ -129,22 +129,25 @@
private AbstractReplicationStrategy replicationStrategy_;
/* Are we starting this node in bootstrap mode? */
private boolean isBootstrapMode;
- private Set<InetAddress> bootstrapSet;
+ private Multimap<InetAddress, String> bootstrapSet;
/* when intialized as a client, we shouldn't write to the system table. */
private boolean isClientMode;
- public synchronized void addBootstrapSource(InetAddress s)
+ public synchronized void addBootstrapSource(InetAddress s, String table)
{
if (logger_.isDebugEnabled())
logger_.debug("Added " + s + " as a bootstrap source");
- bootstrapSet.add(s);
+ bootstrapSet.put(s, table);
}
- public synchronized void removeBootstrapSource(InetAddress s)
+ public synchronized void removeBootstrapSource(InetAddress s, String table)
{
- bootstrapSet.remove(s);
+ if (table == null)
+ bootstrapSet.removeAll(s);
+ else
+ bootstrapSet.remove(s, table);
if (logger_.isDebugEnabled())
- logger_.debug("Removed " + s + " as a bootstrap source; remaining
is [" + StringUtils.join(bootstrapSet, ", ") + "]");
+ logger_.debug("Removed " + s + " as a bootstrap source; remaining
is [" + StringUtils.join(bootstrapSet.keySet(), ", ") + "]");
if (bootstrapSet.isEmpty())
{
@@ -182,7 +185,7 @@
throw new RuntimeException(e);
}
- bootstrapSet = new HashSet<InetAddress>();
+ bootstrapSet = HashMultimap.create();
endPointSnitch_ = DatabaseDescriptor.getEndPointSnitch();
/* register the verb handlers */
Propchange: incubator/cassandra/trunk/test/unit/org/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 18 18:34:22 2010
@@ -1,4 +1,4 @@
/incubator/cassandra/branches/cassandra-0.3/test/unit/org:774578-796573
/incubator/cassandra/branches/cassandra-0.4/test/unit/org:810145-834239,834349-834350
-/incubator/cassandra/branches/cassandra-0.5/test/unit/org:888872-899284
+/incubator/cassandra/branches/cassandra-0.5/test/unit/org:888872-900497
/incubator/cassandra/trunk/test/unit/org:749219-768583