Author: xedin Date: Mon Oct 31 16:23:33 2011 New Revision: 1195551 URL: http://svn.apache.org/viewvc?rev=1195551&view=rev Log: merge from 1.0
Modified: cassandra/trunk/ (props changed) cassandra/trunk/CHANGES.txt cassandra/trunk/NEWS.txt cassandra/trunk/build.xml cassandra/trunk/contrib/ (props changed) cassandra/trunk/debian/changelog 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/CollationController.java cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java cassandra/trunk/src/java/org/apache/cassandra/db/DataTracker.java Propchange: cassandra/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 -/cassandra/branches/cassandra-1.0:1167085-1190046,1190461 +/cassandra/branches/cassandra-1.0:1167085-1190461 /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=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Mon Oct 31 16:23:33 2011 @@ -4,6 +4,8 @@ * cleanup usage of StorageService.setMode() (CASANDRA-3388) * replace compactionlock use in schema migration by checking CFS.isInvalidD +1.0.2 + * "defragment" rows for name-based queries under STCS (CASSANDRA-2503) 1.0.1 * acquire references during index build to prevent delete problems @@ -39,6 +41,15 @@ them (CASSANDRA-3385) * remove procrun (bin\daemon) from Cassandra source tree and artifacts (CASSANDRA-3331) + * make cassandra compile under JDK7 (CASSANDRA-3275) + * remove dependency of clientutil.jar to FBUtilities (CASSANDRA-3299) + * avoid truncation errors by using long math on long values (CASSANDRA-3364) + * avoid clock drift on some Windows machine (CASSANDRA-3375) + * display cache provider in cli 'describe keyspace' command (CASSANDRA-3384) + * fix incomplete topology information in describe_ring (CASSANDRA-3403) + * expire dead gossip states based on time (CASSANDRA-2961) + * improve CompactionTask extensibility (CASSANDRA-3330) + * Allow one leveled compaction task to kick off another (CASSANDRA-3363) Merged from 0.8: * (CQL) update grammar to require key clause in DELETE statement (CASSANDRA-3349) Modified: cassandra/trunk/NEWS.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/NEWS.txt (original) +++ cassandra/trunk/NEWS.txt Mon Oct 31 16:23:33 2011 @@ -8,6 +8,21 @@ Upgrading versions would silently perform a LOCAL_QUORUM read instead.) +1.0.1 +===== + +Upgrading +--------- + - If upgrading from a version prior to 1.0.0, please see the 1.0 Upgrading + section + - For running on Windows as a Service, procrun is no longer discributed + with Cassandra, see README.txt for more information on how to download + it if necessary. + - The name given to snapshots directories have been improved for human + readability. If you had scripts relying on it, you may need to update + them. + + 1.0 === Modified: cassandra/trunk/build.xml URL: http://svn.apache.org/viewvc/cassandra/trunk/build.xml?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/build.xml (original) +++ cassandra/trunk/build.xml Mon Oct 31 16:23:33 2011 @@ -25,7 +25,7 @@ <property name="debuglevel" value="source,lines,vars"/> <!-- default version and SCM information (we need the default SCM info as people may checkout with git-svn) --> - <property name="base.version" value="1.0.0"/> + <property name="base.version" value="1.0.1"/> <property name="scm.default.path" value="cassandra/branches/cassandra-1.0.0"/> <property name="scm.default.connection" value="scm:svn:http://svn.apache.org/repos/asf/${scm.default.path}"/> <property name="scm.default.developerConnection" value="scm:svn:https://svn.apache.org/repos/asf/${scm.default.path}"/> Propchange: cassandra/trunk/contrib/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/contrib:1167085-1190461 /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 Modified: cassandra/trunk/debian/changelog URL: http://svn.apache.org/viewvc/cassandra/trunk/debian/changelog?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/debian/changelog (original) +++ cassandra/trunk/debian/changelog Mon Oct 31 16:23:33 2011 @@ -1,3 +1,9 @@ +cassandra (1.0.1) unstable; urgency=low + + * New release + + -- Sylvain Lebresne <slebre...@apache.org> Fri, 28 Oct 2011 10:09:34 +0200 + cassandra (1.0.0) unstable; urgency=low * New release Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1190461 /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 Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1190461 /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 Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1190461 /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 Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1190461 /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 Mon Oct 31 16:23:33 2011 @@ -4,7 +4,7 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740 /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-1190046,1190461 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1190461 /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/db/CollationController.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java Mon Oct 31 16:23:33 2011 @@ -19,6 +19,7 @@ */ package org.apache.cassandra.db; +import java.io.IOException; import java.nio.ByteBuffer; import java.util.*; @@ -28,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.db.columniterator.IColumnIterator; import org.apache.cassandra.db.columniterator.SimpleAbstractColumnIterator; +import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy; import org.apache.cassandra.db.filter.NamesQueryFilter; import org.apache.cassandra.db.filter.QueryFilter; import org.apache.cassandra.db.marshal.CounterColumnType; @@ -35,7 +37,6 @@ import org.apache.cassandra.io.sstable.S import org.apache.cassandra.io.sstable.SSTableReader; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.utils.CloseableIterator; -import org.apache.cassandra.utils.IntervalTree.Interval; public class CollationController { @@ -149,6 +150,21 @@ public class CollationController ColumnFamily returnCF = container.cloneMeShallow(); filter.collateColumns(returnCF, Collections.singletonList(toCollate), cfs.metadata.comparator, gcBefore); + // "hoist up" the requested data into a more recent sstable + if (sstablesIterated >= cfs.getMinimumCompactionThreshold() && cfs.getCompactionStrategy() instanceof SizeTieredCompactionStrategy) + { + RowMutation rm = new RowMutation(cfs.table.name, new Row(filter.key, returnCF)); + try + { + rm.applyUnsafe(); // skipping commitlog is fine since we're just de-fragmenting existing data + } + catch (IOException e) + { + // log and allow the result to be returned + logger.error("Error re-writing read results", e); + } + } + // Caller is responsible for final removeDeletedCF. This is important for cacheRow to work correctly: return returnCF; } Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java Mon Oct 31 16:23:33 2011 @@ -85,10 +85,13 @@ public class ColumnFamilySerializer impl Collection<IColumn> columns = columnFamily.getSortedColumns(); int count = columns.size(); dos.writeInt(count); + int i = 0; for (IColumn column : columns) { columnFamily.getColumnSerializer().serialize(column, dos); + i++; } + assert count == i: "CF size changed during serialization: was " + count + " initially but " + i + " written"; return count; } catch (IOException e) Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java Mon Oct 31 16:23:33 2011 @@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.db.context.CounterContext; import org.apache.cassandra.io.IColumnSerializer; +import org.apache.cassandra.io.util.FileDataInput; import org.apache.cassandra.utils.ByteBufferUtil; public class ColumnSerializer implements IColumnSerializer @@ -86,7 +87,16 @@ public class ColumnSerializer implements { ByteBuffer name = ByteBufferUtil.readWithShortLength(dis); if (name.remaining() <= 0) - throw new CorruptColumnException("invalid column name length " + name.remaining()); + { + String format = "invalid column name length %d%s"; + String details = ""; + if (dis instanceof FileDataInput) + { + FileDataInput fdis = (FileDataInput)dis; + details = String.format(" (%s, %d bytes remaining)", fdis.getPath(), fdis.bytesRemaining()); + } + throw new CorruptColumnException(String.format(format, name.remaining(), details)); + } int b = dis.readUnsignedByte(); if ((b & COUNTER_MASK) != 0) Modified: cassandra/trunk/src/java/org/apache/cassandra/db/DataTracker.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/DataTracker.java?rev=1195551&r1=1195550&r2=1195551&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/DataTracker.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/DataTracker.java Mon Oct 31 16:23:33 2011 @@ -623,6 +623,7 @@ public class DataTracker { ImmutableSet<SSTableReader> oldSet = ImmutableSet.copyOf(oldSSTables); int newSSTablesSize = sstables.size() - oldSSTables.size() + Iterables.size(replacements); + assert newSSTablesSize >= Iterables.size(replacements) : String.format("Incoherent new size %d replacing %s by %s in %s", newSSTablesSize, oldSSTables, replacements, this); List<SSTableReader> newSSTables = new ArrayList<SSTableReader>(newSSTablesSize); for (SSTableReader sstable : sstables) { @@ -630,8 +631,14 @@ public class DataTracker newSSTables.add(sstable); } Iterables.addAll(newSSTables, replacements); - assert newSSTables.size() == newSSTablesSize; + assert newSSTables.size() == newSSTablesSize : String.format("Expecting new size of %d, got %d while replacing %s by %s in %s", newSSTablesSize, newSSTables.size(), oldSSTables, replacements, this); return newSSTables; } + + @Override + public String toString() + { + return String.format("View(pending_count=%d, sstables=%s, compacting=%s)", memtablesPendingFlush.size(), sstables, compacting); + } } }