Author: jbellis
Date: Thu Dec 30 18:33:52 2010
New Revision: 1053968
URL: http://svn.apache.org/viewvc?rev=1053968&view=rev
Log:
merge from 0.7
Modified:
cassandra/trunk/ (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/db/CompactionManager.java
cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0:1053690-1053891
+/cassandra/branches/cassandra-0.7:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1053891
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/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
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1053891
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/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
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1053891
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/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
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1053891
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/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
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 30 18:33:52 2010
@@ -1,6 +1,6 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1053763
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1053893,1053928,1053931
-/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1053891
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1053928,1053931
+/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1053891,1053922
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/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
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=1053968&r1=1053967&r2=1053968&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java Thu
Dec 30 18:33:52 2010
@@ -799,6 +799,7 @@ public class CompactionManager implement
public void write(DataOutput out) throws IOException
{
+ out.writeLong(row.dataSize);
row.echoData(out);
}
Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java?rev=1053968&r1=1053967&r2=1053968&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java
(original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java Thu Dec
30 18:33:52 2010
@@ -33,6 +33,7 @@ import org.junit.Test;
import org.apache.cassandra.CleanupHelper;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
import org.apache.cassandra.db.filter.IFilter;
import org.apache.cassandra.db.filter.QueryFilter;
@@ -49,9 +50,10 @@ import org.apache.cassandra.utils.FBUtil
public class CleanupTest extends CleanupHelper
{
- public static final int LOOPS = 800;
+ public static final int LOOPS = 200;
public static final String TABLE1 = "Keyspace1";
public static final String CF1 = "Indexed1";
+ public static final String CF2 = "Standard1";
public static final ByteBuffer COLUMN =
ByteBuffer.wrap("birthdate".getBytes());
public static final ByteBuffer VALUE = ByteBuffer.allocate(8);
static
@@ -61,34 +63,59 @@ public class CleanupTest extends Cleanup
}
@Test
- public void testCleanup() throws IOException, ExecutionException,
InterruptedException
+ public void testCleanup() throws IOException, ExecutionException,
InterruptedException, ConfigurationException
{
+ StorageService.instance.initServer();
+
Table table = Table.open(TABLE1);
+ ColumnFamilyStore cfs = table.getColumnFamilyStore(CF2);
- ColumnFamilyStore cfs = table.getColumnFamilyStore(CF1);
+ List<Row> rows;
+
+ // insert data and verify we get it back w/ range query
fillCF(cfs, LOOPS);
+ rows = cfs.getRangeSlice(null, Util.range("", ""), 1000, new
IdentityQueryFilter());
+ assertEquals(LOOPS, rows.size());
+
+ // with one token in the ring, owned by the local node, cleanup should
be a no-op
+ CompactionManager.instance.performCleanup(cfs);
+
+ // check data is still there
+ rows = cfs.getRangeSlice(null, Util.range("", ""), 1000, new
IdentityQueryFilter());
+ assertEquals(LOOPS, rows.size());
+ }
+ @Test
+ public void testCleanupWithIndexes() throws IOException,
ExecutionException, InterruptedException
+ {
+ Table table = Table.open(TABLE1);
+ ColumnFamilyStore cfs = table.getColumnFamilyStore(CF1);
assertEquals(cfs.getIndexedColumns().iterator().next(), COLUMN);
- ColumnFamilyStore cfi = cfs.getIndexedColumnFamilyStore(COLUMN);
+ List<Row> rows;
+
+ // insert data and verify we get it back w/ range query
+ fillCF(cfs, LOOPS);
+ rows = cfs.getRangeSlice(null, Util.range("", ""), 1000, new
IdentityQueryFilter());
+ assertEquals(LOOPS, rows.size());
+ ColumnFamilyStore cfi = cfs.getIndexedColumnFamilyStore(COLUMN);
assertTrue(cfi.isIndexBuilt());
+ // verify we get it back w/ index query too
IndexExpression expr = new IndexExpression(COLUMN, IndexOperator.EQ,
VALUE);
IndexClause clause = new IndexClause(Arrays.asList(expr),
FBUtilities.EMPTY_BYTE_BUFFER, Integer.MAX_VALUE);
IFilter filter = new IdentityQueryFilter();
IPartitioner p = StorageService.getPartitioner();
Range range = new Range(p.getMinimumToken(), p.getMinimumToken());
- List<Row> rows = table.getColumnFamilyStore(CF1).scan(clause, range,
filter);
-
+ rows = table.getColumnFamilyStore(CF1).scan(clause, range, filter);
assertEquals(LOOPS, rows.size());
+ // nuke our token so cleanup will remove everything
TokenMetadata tmd = StorageService.instance.getTokenMetadata();
+ tmd.clearUnsafe();
+ assert StorageService.instance.getLocalRanges(TABLE1).isEmpty();
- assertNotNull(tmd);
- assertEquals(0, tmd.getTokenToEndpointMap().size());
-
- // Since this test has no ring cleanup will remove all
CompactionManager.instance.performCleanup(cfs);
// row data should be gone
@@ -98,27 +125,25 @@ public class CleanupTest extends Cleanup
// not only should it be gone but there should be no data on disk, not
even tombstones
assert cfs.getSSTables().isEmpty();
- // 2ary indexes should result in no results, but
+ // 2ary indexes should result in no results, too (although tombstones
won't be gone until compacted)
rows = cfs.scan(clause, range, filter);
assertEquals(0, rows.size());
}
- protected void fillCF(ColumnFamilyStore store, int rowsPerSSTable) throws
ExecutionException, InterruptedException, IOException
+ protected void fillCF(ColumnFamilyStore cfs, int rowsPerSSTable) throws
ExecutionException, InterruptedException, IOException
{
CompactionManager.instance.disableAutoCompaction();
for (int i = 0; i < rowsPerSSTable; i++)
{
String key = String.valueOf(i);
-
// create a row and update the birthdate value, test that the
index query fetches the new version
RowMutation rm;
rm = new RowMutation(TABLE1, ByteBufferUtil.bytes(key));
- rm.add(new QueryPath(CF1, null, COLUMN), VALUE,
System.currentTimeMillis());
- rm.apply();
+ rm.add(new QueryPath(cfs.getColumnFamilyName(), null, COLUMN),
VALUE, System.currentTimeMillis());
+ rm.applyUnsafe();
}
- store.forceBlockingFlush();
- store.buildSecondaryIndexes(store.getSSTables(),
store.getIndexedColumns());
+ cfs.forceBlockingFlush();
}
}