Author: jbellis
Date: Thu Aug 20 01:03:31 2009
New Revision: 806016
URL: http://svn.apache.org/viewvc?rev=806016&view=rev
Log:
rename getInitialToken to getToken; it doesn't actually have anything to do w/
initial or default tokens. log token on startup.
patch by jbellis; reviewed by Sammy Yu for CASSANDRA-364
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.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/service/StorageService.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/utils/XMLUtils.java
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/SystemTableTest.java
incubator/cassandra/trunk/test/unit/org/apache/cassandra/locator/RackUnawareStrategyTest.java
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Thu Aug 20 01:03:31 2009
@@ -45,7 +45,6 @@
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.collections.IteratorUtils;
import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.iterators.ReverseListIterator;
import org.cliffc.high_scale_lib.NonBlockingHashMap;
@@ -978,7 +977,7 @@
FileStruct filestruct = lfs.get(0);
ColumnFamily.serializer().serializeWithIndexes(filestruct.getColumnFamily(),
bufOut);
}
- if
(Range.isTokenInRanges(StorageService.getPartitioner().getInitialToken(lastkey),
ranges))
+ if
(Range.isTokenInRanges(StorageService.getPartitioner().getToken(lastkey),
ranges))
{
if (rangeWriter == null)
{
@@ -1001,7 +1000,7 @@
continue;
}
/* keep on looping until we find a key in the range */
- while
(!Range.isTokenInRanges(StorageService.getPartitioner().getInitialToken(filestruct.getKey()),
ranges))
+ while
(!Range.isTokenInRanges(StorageService.getPartitioner().getToken(filestruct.getKey()),
ranges))
{
filestruct.advance(true);
if (filestruct.isExhausted())
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
Thu Aug 20 01:03:31 2009
@@ -35,6 +35,8 @@
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
+import org.apache.commons.lang.StringUtils;
+
/*
* Commit Log tracks every write operation into the system. The aim
* of the commit log is to be able to successfully recover data that was
@@ -322,6 +324,11 @@
/* read the commit log entry */
Row row = Row.serializer().deserialize(bufIn);
+ if (logger_.isDebugEnabled())
+ logger_.debug(String.format("replaying mutation for %s.%s:
%s",
+ row.getTable(),
+ row.key(),
+ "{" +
StringUtils.join(row.getColumnFamilies(), ", ") + "}"));
Table table = Table.open(row.getTable());
tablesRecovered.add(table);
Collection<ColumnFamily> columnFamilies = new
ArrayList<ColumnFamily>(row.getColumnFamilies());
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
Thu Aug 20 01:03:31 2009
@@ -103,6 +103,7 @@
if (cf == null)
{
Token token = p.getDefaultToken();
+ logger.info("Saved Token not found. Using " + token);
int generation = 1;
RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, LOCATION_KEY);
@@ -118,6 +119,7 @@
/* we crashed and came back up need to bump generation # */
IColumn tokenColumn = cf.getColumn(TOKEN);
Token token = p.getTokenFactory().fromByteArray(tokenColumn.value());
+ logger.info("Saved Token found: " + token);
IColumn generation = cf.getColumn(GENERATION);
int gen = BasicUtilities.byteArrayToInt(generation.value()) + 1;
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Thu
Aug 20 01:03:31 2009
@@ -625,12 +625,14 @@
public void flush(boolean fRecovery) throws IOException
{
- Set<String> cfNames = columnFamilyStores_.keySet();
- for ( String cfName : cfNames )
+ for (String cfName : columnFamilyStores_.keySet())
{
- if (fRecovery) {
+ if (fRecovery)
+ {
columnFamilyStores_.get(cfName).flushMemtableOnRecovery();
- } else {
+ }
+ else
+ {
columnFamilyStores_.get(cfName).forceFlush();
}
}
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
Thu Aug 20 01:03:31 2009
@@ -38,10 +38,15 @@
public Comparator<String> getReverseDecoratedKeyComparator();
/**
- * @return the token to use for this node if none was saved
+ * @return a Token that can be used to route a given key
*/
- public Token getInitialToken(String key);
+ public Token getToken(String key);
+ /**
+ * @return the default Token to represent this node if none was saved.
+ * Uses the one given in the InitialToken configuration directive,
+ * or picks one automatically if that was not given.
+ */
public Token getDefaultToken();
public Token.TokenFactory getTokenFactory();
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
Thu Aug 20 01:03:31 2009
@@ -116,7 +116,7 @@
return tokenFactory;
}
- public Token getInitialToken(String key)
+ public Token getToken(String key)
{
return new StringToken(key);
}
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java
Thu Aug 20 01:03:31 2009
@@ -120,7 +120,7 @@
return tokenFactory;
}
- public Token getInitialToken(String key)
+ public Token getToken(String key)
{
return new BigIntegerToken(FBUtilities.hash(key));
}
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=806016&r1=806015&r2=806016&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
Thu Aug 20 01:03:31 2009
@@ -129,7 +129,7 @@
for ( String key : keys )
{
- results.put(key,
getStorageEndPoints(partitioner_.getInitialToken(key)));
+ results.put(key, getStorageEndPoints(partitioner_.getToken(key)));
}
return results;
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=806016&r1=806015&r2=806016&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
Thu Aug 20 01:03:31 2009
@@ -85,7 +85,7 @@
for ( String key : keys )
{
- results.put(key,
getStorageEndPoints(partitioner_.getInitialToken(key)));
+ results.put(key, getStorageEndPoints(partitioner_.getToken(key)));
}
return results;
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=806016&r1=806015&r2=806016&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
Thu Aug 20 01:03:31 2009
@@ -569,7 +569,7 @@
Token[] tokens = tokenToEndPointMap.keySet().toArray(new
Token[tokenToEndPointMap.keySet().size()]);
Arrays.sort(tokens);
int index = Arrays.binarySearch(tokens, token) *
(keys.length/tokens.length);
- Token newToken = partitioner_.getInitialToken(keys[index]);
+ Token newToken = partitioner_.getToken(keys[index]);
/* update the token */
updateToken(newToken);
}
@@ -891,7 +891,7 @@
public EndPoint getPrimary(String key)
{
EndPoint endpoint = StorageService.tcpAddr_;
- Token token = partitioner_.getInitialToken(key);
+ Token token = partitioner_.getToken(key);
Map<Token, EndPoint> tokenToEndPointMap =
tokenMetadata_.cloneTokenEndPointMap();
List tokens = new ArrayList<Token>(tokenToEndPointMap.keySet());
if (tokens.size() > 0)
@@ -939,7 +939,7 @@
*/
public EndPoint[] getNStorageEndPoint(String key)
{
- return
nodePicker_.getStorageEndPoints(partitioner_.getInitialToken(key));
+ return nodePicker_.getStorageEndPoints(partitioner_.getToken(key));
}
private Map<String, EndPoint[]> getNStorageEndPoints(String[] keys)
@@ -978,7 +978,7 @@
*/
public Map<EndPoint, EndPoint> getNStorageEndPointMap(String key)
{
- return
nodePicker_.getHintedStorageEndPoints(partitioner_.getInitialToken(key));
+ return
nodePicker_.getHintedStorageEndPoints(partitioner_.getToken(key));
}
/**
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/utils/XMLUtils.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/utils/XMLUtils.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/utils/XMLUtils.java
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/utils/XMLUtils.java
Thu Aug 20 01:03:31 2009
@@ -51,12 +51,9 @@
}
public String getNodeValue(String xql) throws XPathExpressionException
- {
- XPathExpression expr = xpath_.compile(xql);
- String value = expr.evaluate(document_);
- if ( value != null && value.equals("") )
- value = null;
- return value;
+ {
+ String value = xpath_.compile(xql).evaluate(document_);
+ return "".equals(value) ? null : value;
}
public String[] getNodeValues(String xql) throws
XPathExpressionException
Modified:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/SystemTableTest.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/SystemTableTest.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/SystemTableTest.java
(original)
+++
incubator/cassandra/trunk/test/unit/org/apache/cassandra/db/SystemTableTest.java
Thu Aug 20 01:03:31 2009
@@ -41,7 +41,7 @@
public void testTokenGetsUpdated() throws IOException
{
SystemTable.StorageMetadata storageMetadata1 =
SystemTable.initMetadata();
-
SystemTable.updateToken(StorageService.getPartitioner().getInitialToken("503545744:0"));
+
SystemTable.updateToken(StorageService.getPartitioner().getToken("503545744:0"));
SystemTable.StorageMetadata storageMetadata2 =
SystemTable.initMetadata();
Assert.assertTrue("smd should still be a singleton after updateToken",
storageMetadata1 == storageMetadata2);
}
Modified:
incubator/cassandra/trunk/test/unit/org/apache/cassandra/locator/RackUnawareStrategyTest.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/locator/RackUnawareStrategyTest.java?rev=806016&r1=806015&r2=806016&view=diff
==============================================================================
---
incubator/cassandra/trunk/test/unit/org/apache/cassandra/locator/RackUnawareStrategyTest.java
(original)
+++
incubator/cassandra/trunk/test/unit/org/apache/cassandra/locator/RackUnawareStrategyTest.java
Thu Aug 20 01:03:31 2009
@@ -59,7 +59,7 @@
List<Token> keyTokens = new ArrayList<Token>();
for (int i = 0; i < 5; i++) {
endPointTokens.add(new StringToken(String.valueOf((char)('a' + i *
2))));
-
keyTokens.add(partitioner.getInitialToken(String.valueOf((char)('a' + i * 2 +
1))));
+ keyTokens.add(partitioner.getToken(String.valueOf((char)('a' + i *
2 + 1))));
}
testGetStorageEndPoints(tmd, strategy, endPointTokens.toArray(new
Token[0]), keyTokens.toArray(new Token[0]));
}