Author: jbellis
Date: Mon Nov 15 15:09:14 2010
New Revision: 1035297
URL: http://svn.apache.org/viewvc?rev=1035297&view=rev
Log:
merge from 0.7
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
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/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/trunk/test/system/test_thrift_server.py
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6:922689-1035020
-/cassandra/branches/cassandra-0.7:1026517-1035021
+/cassandra/branches/cassandra-0.7:1026517-1035296
/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-915439
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Nov 15 15:09:14 2010
@@ -1,5 +1,4 @@
dev
-0.6.9
* add clustertool, config-converter, sstablekeys, and schematool
Windows .bat files (CASSANDRA-1723)
* reject range queries received during bootstrap (CASSANDRA-1739)
@@ -30,6 +29,8 @@ dev
* add read repair chance to cli "show keyspaces"
* upgrade to ConcurrentLinkedHashMap 1.1 (CASSANDRA-975)
* fix index scan routing (CASSANDRA-1722)
+ * fix tombstoning of supercolumns in range queries (CASSANDRA-1734)
+ * clear endpoint cache after updating keyspace metadata (CASSANDRA-1741)
0.7.0-beta3
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026517-1035021
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026517-1035296
/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-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026517-1035021
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026517-1035296
/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-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026517-1035021
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026517-1035296
/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-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026517-1035021
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026517-1035296
/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-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Nov 15 15:09:14 2010
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1035020
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026517-1035021
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026517-1035296
/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-903502
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Mon
Nov 15 15:09:14 2010
@@ -1212,12 +1212,13 @@ public class ColumnFamilyStore implement
Iterables.addAll(sstables, ssTables);
RowIterator iterator = RowIteratorFactory.getIterator(memtables,
sstables, startWith, stopAt, filter, getComparator(), this);
+ int gcBefore = (int)(System.currentTimeMillis() / 1000) -
metadata.gcGraceSeconds;
try
{
// pull rows out of the iterator
boolean first = true;
- while(iterator.hasNext())
+ while (iterator.hasNext())
{
Row current = iterator.next();
DecoratedKey key = current.key;
@@ -1228,7 +1229,11 @@ public class ColumnFamilyStore implement
// skip first one
if(range instanceof Bounds || !first || !key.equals(startWith))
{
- rows.add(current);
+ // TODO this is necessary because when we collate
supercolumns together, we don't check
+ // their subcolumns for relevance, so we need to do a
second prune post facto here.
+ rows.add(current.cf != null && current.cf.isSuper()
+ ? new Row(current.key, removeDeleted(current.cf,
gcBefore))
+ : current);
if (logger.isDebugEnabled())
logger.debug("scanned " + key);
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java Mon
Nov 15 15:09:14 2010
@@ -31,7 +31,6 @@ import java.util.concurrent.Future;
import javax.management.MBeanServer;
import javax.management.ObjectName;
-import org.apache.cassandra.config.CFMetaData;
import org.apache.commons.collections.PredicateUtils;
import org.apache.commons.collections.iterators.CollatingIterator;
import org.apache.commons.collections.iterators.FilterIterator;
@@ -272,22 +271,8 @@ public class CompactionManager implement
writer = new SSTableWriter(newFilename, expectedBloomFilterSize,
cfs.metadata, cfs.partitioner);
while (nni.hasNext())
{
- writer.mark();
- try
- {
- AbstractCompactedRow row = nni.next();
- writer.append(row);
- }
- catch (Exception e)
- {
- logger.error("non-fatal error during compaction", e);
- writer.reset();
- }
- catch (IOError e)
- {
- logger.error("non-fatal error during compaction", e);
- writer.reset();
- }
+ AbstractCompactedRow row = nni.next();
+ writer.append(row);
totalkeysWritten++;
}
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/RowIteratorFactory.java
Mon Nov 15 15:09:14 2010
@@ -135,7 +135,7 @@ public class RowIteratorFactory
if (cached != null)
{
QueryFilter keyFilter = new QueryFilter(key, filter.path,
filter.filter);
- returnCF = cfs.filterColumnFamily(cached, keyFilter,
cfs.metadata.gcGraceSeconds);
+ returnCF = cfs.filterColumnFamily(cached, keyFilter,
gcBefore);
}
else
{
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
Mon Nov 15 15:09:14 2010
@@ -4,6 +4,7 @@ import org.apache.cassandra.config.CFMet
import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.KSMetaData;
+import org.apache.cassandra.db.Table;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.UUIDGen;
@@ -58,6 +59,7 @@ public class UpdateKeyspace extends Migr
{
DatabaseDescriptor.clearTableDefinition(oldKsm, newVersion);
DatabaseDescriptor.setTableDefinition(newKsm, newVersion);
+ Table.open(newKsm.name).replicationStrategy.clearEndpointCache();
logger.info("Keyspace updated. Please perform any manual operations.");
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
Mon Nov 15 15:09:14 2010
@@ -77,30 +77,6 @@ public class SSTableWriter extends SSTab
components.add(Component.STATS);
}
- /** something bad happened and the files associated with this writer need
to be deleted. */
- public void abort()
- {
- try
- {
- dataFile.close();
- FileUtils.deleteWithConfirm(dataFile.getPath());
- }
- catch (IOException ex)
- {
- logger.error(String.format("Caught exception while deleting
aborted sstable (%s). %s", dataFile.getPath(), ex.getMessage()));
- }
-
- try
- {
- iwriter.close();
-
FileUtils.deleteWithConfirm(descriptor.filenameFor(SSTable.COMPONENT_INDEX));
- }
- catch (IOException ex)
- {
- logger.error(String.format("Caught exception while deleting
aborted sstable (%s). %s", descriptor.filenameFor(SSTable.COMPONENT_INDEX),
ex.getMessage()));
- }
- }
-
public void mark()
{
dataMark = dataFile.mark();
Modified: cassandra/trunk/test/system/test_thrift_server.py
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=1035297&r1=1035296&r2=1035297&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_thrift_server.py (original)
+++ cassandra/trunk/test/system/test_thrift_server.py Mon Nov 15 15:09:14 2010
@@ -728,6 +728,18 @@ class TestMutations(ThriftTester):
assert _big_slice('key1', ColumnParent('Super1', 'sc1')) == []
+ def test_super_cf_remove_and_range_slice(self):
+ _set_keyspace('Keyspace1')
+
+ client.insert('key3', ColumnParent('Super1', 'sc1'), Column(_i64(1),
'v1', 0), ConsistencyLevel.ONE)
+ client.remove('key3', ColumnPath('Super1', 'sc1'), 5,
ConsistencyLevel.ONE)
+
+ rows = {}
+ for row in get_range_slice(client, ColumnParent('Super1'),
SlicePredicate(slice_range=SliceRange('', '', False, 1000)), '', '', 1000,
ConsistencyLevel.ONE):
+ scs = [cosc.super_column for cosc in row.columns]
+ rows[row.key] = scs
+ assert rows == {'key3': []}, rows
+
def test_super_cf_remove_column(self):
_set_keyspace('Keyspace1')
_insert_simple()