Author: jbellis
Date: Thu Oct 20 21:20:51 2011
New Revision: 1187054
URL: http://svn.apache.org/viewvc?rev=1187054&view=rev
Log:
merge from 1.0
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/contrib/ (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7:1026516-1183000
/cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0:1125021-1130369
/cassandra/branches/cassandra-0.8.1:1101014-1125018
-/cassandra/branches/cassandra-1.0:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0:1167085-1187053
/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Oct 20 21:20:51 2011
@@ -16,6 +16,12 @@
* reduce network copies (CASSANDRA-3333, 3373)
* (Hadoop) skip empty rows when slicing the entire row (CASSANDRA-2855)
* fix ColumnIndexer to use long offsets (CASSANDRA-3358)
+ * Fix exception during PIG 'dump' (CASSANDRA-2810)
+ * Fix transposition in cfHistograms (CASSANDRA-3222)
+ * Allow using number as DC name when creating keyspace in CQL (CASSANDRA-3239)
+ * Force flush of system table after updating/removing a token (CASSANDRA-3243)
+ * Make Pig storage handle implements LoadMetadata (CASSANDRA-2777)
+ * Improved CLI exceptions (CASSANDRA-3312)
* Fix handling of tombstone by SSTableExport/Import (CASSANDRA-3357)
* Only count compaction as active (for throttling) when they have
successfully acquired the compaction lock (CASSANDRA-3344)
@@ -40,6 +46,10 @@
(CASSANDRA-3292)
* fix Deflate compression when compression actually makes the data bigger
(CASSANDRA-3370)
+ * avoid locking on update when no indexes are involved (CASSANDRA-3386)
+ * optimize UUIDGen to avoid lock contention on InetAddress.getLocalHost
+ (CASSANDRA-3387)
+ * tolerate index being dropped mid-mutation (CASSANDRA-3334, 3313)
1.0.0-final
@@ -63,6 +73,7 @@
Fixes merged from 0.8 below:
* Fix tool .bat files when CASSANDRA_HOME contains spaces (CASSANDRA-3258)
* Force flush of status table when removing/updating token (CASSANDRA-3243)
+ * Evict gossip state immediately when a token is taken over by a new IP
(CASSANDRA-3259)
* Fix bug where the failure detector can take too long to mark a host
down (CASSANDRA-3273)
* (Hadoop) allow wrapping ranges in queries (CASSANDRA-3137)
@@ -73,12 +84,7 @@ Fixes merged from 0.8 below:
* Nodetool no longer leaks threads and closes JMX connections (CASSANDRA-3309)
* fix truncate allowing data to be replayed post-restart (CASSANDRA-3297)
* Move SimpleAuthority and SimpleAuthenticator to examples (CASSANDRA-2922)
- * Fix exception during PIG 'dump' (CASSANDRA-2810)
- * Fix transposition in cfHistograms (CASSANDRA-3222)
- * Allow using number as DC name when creating keyspace in CQL (CASSANDRA-3239)
- * Force flush of system table after updating/removing a token (CASSANDRA-3243)
- * Make Pig storage handle implements LoadMetadata (CASSANDRA-2777)
- * Improved CLI exceptions (CASSANDRA-3312)
+ * Fix handling of tombstone by SSTableExport/Import (CASSANDRA-3357)
1.0.0-rc2
Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
/cassandra/branches/cassandra-0.7/contrib:1026516-1183000
/cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
/cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
-/cassandra/branches/cassandra-1.0/contrib:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/contrib:1167085-1187053
/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1183000
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1187053
/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1102511-1125020
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1183000
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1187053
/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1102511-1125020
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1183000
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1187053
/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1102511-1125020
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1183000
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1187053
/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1102511-1125020
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 20 21:20:51 2011
@@ -1,10 +1,10 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1183000
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1185965
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1186803
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1186208,1186796
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1187053
/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1102511-1125020
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Thu Oct 20
21:20:51 2011
@@ -1975,6 +1975,7 @@ public class CliClient
sessionState.out.printf(" Row cache size / save period in seconds
/ keys to save : %s/%s/%s%n",
cf_def.row_cache_size, cf_def.row_cache_save_period_in_seconds,
cf_def.row_cache_keys_to_save == Integer.MAX_VALUE ? "all" :
cf_def.row_cache_keys_to_save);
+ sessionState.out.printf(" Row Cache Provider: %s%n",
cf_def.getRow_cache_provider());
sessionState.out.printf(" Key cache size / save period in
seconds: %s/%s%n", cf_def.key_cache_size,
cf_def.key_cache_save_period_in_seconds);
sessionState.out.printf(" GC grace seconds: %s%n",
cf_def.gc_grace_seconds);
sessionState.out.printf(" Compaction min/max thresholds:
%s/%s%n", cf_def.min_compaction_threshold, cf_def.max_compaction_threshold);
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Thu Oct 20
21:20:51 2011
@@ -426,26 +426,29 @@ public class Table
}
}
+ // Sharding the lock is insufficient to avoid contention when
there is a "hot" row, e.g., for
+ // hint writes when a node is down (keyed by target IP). So
it is worth special-casing the
+ // no-index case to avoid the synchronization.
+ if (mutatedIndexedColumns == null)
+ {
+ cfs.apply(key, cf);
+ continue;
+ }
+ // else mutatedIndexedColumns != null
synchronized (indexLockFor(mutation.key()))
{
- ColumnFamily oldIndexedColumns = null;
- if (mutatedIndexedColumns != null)
- {
- // with the raw data CF, we can just apply every
update in any order and let
- // read-time resolution throw out obsolete versions,
thus avoiding read-before-write.
- // but for indexed data we need to make sure that
we're not creating index entries
- // for obsolete writes.
- oldIndexedColumns = readCurrentIndexedColumns(key,
cfs, mutatedIndexedColumns);
- logger.debug("Pre-mutation index row is {}",
oldIndexedColumns);
- ignoreObsoleteMutations(cf, mutatedIndexedColumns,
oldIndexedColumns);
- }
+ // with the raw data CF, we can just apply every update in
any order and let
+ // read-time resolution throw out obsolete versions, thus
avoiding read-before-write.
+ // but for indexed data we need to make sure that we're
not creating index entries
+ // for obsolete writes.
+ ColumnFamily oldIndexedColumns =
readCurrentIndexedColumns(key, cfs, mutatedIndexedColumns);
+ logger.debug("Pre-mutation index row is {}",
oldIndexedColumns);
+ ignoreObsoleteMutations(cf, mutatedIndexedColumns,
oldIndexedColumns);
cfs.apply(key, cf);
- if (mutatedIndexedColumns != null)
- {
- // ignore full index memtables -- we flush those when
the "master" one is full
- cfs.indexManager.applyIndexUpdates(mutation.key(), cf,
mutatedIndexedColumns, oldIndexedColumns);
- }
+
+ // ignore full index memtables -- we flush those when the
"master" one is full
+ cfs.indexManager.applyIndexUpdates(mutation.key(), cf,
mutatedIndexedColumns, oldIndexedColumns);
}
}
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
Thu Oct 20 21:20:51 2011
@@ -33,6 +33,7 @@ import org.apache.cassandra.io.sstable.R
import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.thrift.IndexClause;
import org.apache.cassandra.thrift.IndexExpression;
+import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -153,20 +154,18 @@ public class SecondaryIndexManager
if (index == null)
return;
- SystemTable.setIndexRemoved(baseCfs.metadata.ksName,
index.getNameForSystemTable(column));
-
- index.removeIndex(column);
-
// Remove this column from from row level index map
if (index instanceof PerRowSecondaryIndex)
{
index.removeColumnDef(column);
-
+
//If now columns left on this CF remove from row level lookup
if (index.getColumnDefs().isEmpty())
rowLevelIndexMap.remove(index.getClass());
}
-
+
+ index.removeIndex(column);
+ SystemTable.setIndexRemoved(baseCfs.metadata.ksName,
index.getNameForSystemTable(column));
}
/**
@@ -369,9 +368,13 @@ public class SecondaryIndexManager
continue;
SecondaryIndex index = getIndexForColumn(columnName);
- assert index != null;
-
- //Update entire row if we encounter a row level index
+ if (index == null)
+ {
+ logger.debug("Looks like index got dropped mid-update.
Skipping");
+ continue;
+ }
+
+ // Update entire row if we encounter a row level index
if (index instanceof PerRowSecondaryIndex)
{
if (appliedRowLevelIndexes == null)
@@ -397,9 +400,13 @@ public class SecondaryIndexManager
continue; // null column == row deletion
SecondaryIndex index = getIndexForColumn(columnName);
- assert index != null;
+ if (index == null)
+ {
+ logger.debug("index on {} removed; skipping remove-old for
{}", columnName, ByteBufferUtil.bytesToHex(rowKey));
+ continue;
+ }
- //Update entire row if we encounter a row level index
+ // Update entire row if we encounter a row level index
if (index instanceof PerRowSecondaryIndex)
{
if (appliedRowLevelIndexes == null)
@@ -448,8 +455,7 @@ public class SecondaryIndexManager
else
{
DecoratedKey<LocalToken> valueKey =
getIndexKeyFor(column.name(), column.value());
-
- ((PerColumnSecondaryIndex)index).deleteColumn(valueKey,
key.key, column);
+ ((PerColumnSecondaryIndex) index).deleteColumn(valueKey,
key.key, column);
}
}
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
Thu Oct 20 21:20:51 2011
@@ -45,9 +45,8 @@ import org.slf4j.LoggerFactory;
public class KeysIndex extends PerColumnSecondaryIndex
{
private static final Logger logger =
LoggerFactory.getLogger(KeysIndex.class);
- private ColumnFamilyStore indexedCfs;
- private ColumnDefinition columnDef;
-
+ private ColumnFamilyStore indexCfs;
+
public KeysIndex()
{
}
@@ -55,11 +54,10 @@ public class KeysIndex extends PerColumn
public void init()
{
assert baseCfs != null && columnDefs != null;
-
- columnDef = columnDefs.iterator().next();
-
- CFMetaData indexedCfMetadata =
CFMetaData.newIndexMetadata(baseCfs.metadata, columnDef, indexComparator());
- indexedCfs = ColumnFamilyStore.createColumnFamilyStore(baseCfs.table,
+
+ ColumnDefinition columnDef = columnDefs.iterator().next();
+ CFMetaData indexedCfMetadata =
CFMetaData.newIndexMetadata(baseCfs.metadata, columnDef,indexComparator());
+ indexCfs = ColumnFamilyStore.createColumnFamilyStore(baseCfs.table,
indexedCfMetadata.cfName,
new
LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
@@ -80,9 +78,9 @@ public class KeysIndex extends PerColumn
return;
int localDeletionTime = (int) (System.currentTimeMillis() / 1000);
- ColumnFamily cfi = ColumnFamily.create(indexedCfs.metadata);
+ ColumnFamily cfi = ColumnFamily.create(indexCfs.metadata);
cfi.addTombstone(rowKey, localDeletionTime, column.timestamp());
- indexedCfs.apply(valueKey, cfi);
+ indexCfs.apply(valueKey, cfi);
if (logger.isDebugEnabled())
logger.debug("removed index entry for cleaned-up value {}:{}",
valueKey, cfi);
}
@@ -90,7 +88,7 @@ public class KeysIndex extends PerColumn
@Override
public void insertColumn(DecoratedKey<?> valueKey, ByteBuffer rowKey,
IColumn column)
{
- ColumnFamily cfi = ColumnFamily.create(indexedCfs.metadata);
+ ColumnFamily cfi = ColumnFamily.create(indexCfs.metadata);
if (column instanceof ExpiringColumn)
{
ExpiringColumn ec = (ExpiringColumn)column;
@@ -103,7 +101,7 @@ public class KeysIndex extends PerColumn
if (logger.isDebugEnabled())
logger.debug("applying index row {}:{}", valueKey, cfi);
- indexedCfs.apply(valueKey, cfi);
+ indexCfs.apply(valueKey, cfi);
}
@Override
@@ -115,8 +113,8 @@ public class KeysIndex extends PerColumn
@Override
public void removeIndex(ByteBuffer columnName) throws IOException
{
- indexedCfs.removeAllSSTables();
- indexedCfs.unregisterMBean();
+ indexCfs.removeAllSSTables();
+ indexCfs.unregisterMBean();
}
@Override
@@ -124,7 +122,7 @@ public class KeysIndex extends PerColumn
{
try
{
- indexedCfs.forceBlockingFlush();
+ indexCfs.forceBlockingFlush();
}
catch (ExecutionException e)
{
@@ -139,13 +137,13 @@ public class KeysIndex extends PerColumn
@Override
public void unregisterMbean()
{
- indexedCfs.unregisterMBean();
+ indexCfs.unregisterMBean();
}
@Override
public ColumnFamilyStore getUnderlyingCfs()
{
- return indexedCfs;
+ return indexCfs;
}
@Override
@@ -157,13 +155,13 @@ public class KeysIndex extends PerColumn
@Override
public String getIndexName()
{
- return indexedCfs.columnFamily;
+ return indexCfs.columnFamily;
}
@Override
public void renameIndex(String newCfName) throws IOException
{
-
indexedCfs.renameSSTables(indexedCfs.columnFamily.replace(baseCfs.columnFamily,
newCfName));
+
indexCfs.renameSSTables(indexCfs.columnFamily.replace(baseCfs.columnFamily,
newCfName));
}
@Override
Modified:
cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java Thu
Oct 20 21:20:51 2011
@@ -603,7 +603,8 @@ public final class MessagingService impl
if (recent > 0)
{
logTpstats = true;
- logger_.info("{} {} messages dropped in server lifetime",
recent, verb);
+ logger_.info("{} {} messages dropped in last {}ms",
+ new Object[] {recent, verb,
LOG_DROPPED_INTERVAL_IN_MS});
lastDroppedInternal.put(verb, dropped.get());
}
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java?rev=1187054&r1=1187053&r2=1187054&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/UUIDGen.java Thu Oct 20
21:20:51 2011
@@ -22,7 +22,6 @@ package org.apache.cassandra.utils;
import java.io.*;
import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
@@ -123,7 +122,7 @@ public class UUIDGen
private static byte[] createTimeUUIDBytes(long msb)
{
- long lsb = instance.getClockSeqAndNode();
+ long lsb = instance.getClockSeqAndNode(FBUtilities.getLocalAddress());
byte[] uuidBytes = new byte[16];
for (int i = 0; i < 8; i++)
@@ -148,19 +147,7 @@ public class UUIDGen
throw new IllegalArgumentException("incompatible with uuid
version: "+uuid.version());
return (uuid.timestamp() / 10000) - START_EPOCH;
}
-
- private long getClockSeqAndNode()
- {
- try
- {
- return getClockSeqAndNode(InetAddress.getLocalHost());
- }
- catch (UnknownHostException e)
- {
- throw new RuntimeException(e);
- }
- }
-
+
// todo: could cache value if we assume node doesn't change.
private long getClockSeqAndNode(InetAddress addr)
{