Author: slebresne Date: Fri Sep 9 14:12:23 2011 New Revision: 1167192 URL: http://svn.apache.org/viewvc?rev=1167192&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/db/ArrayBackedSortedColumns.java cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/trunk/src/java/org/apache/cassandra/db/ISortedColumns.java cassandra/trunk/src/java/org/apache/cassandra/db/ThreadSafeSortedColumns.java cassandra/trunk/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java Propchange: cassandra/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 -/cassandra/branches/cassandra-1.0:1167106-1167107 -/cassandra/branches/cassandra-1.0.0:1167106 +/cassandra/branches/cassandra-1.0:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0:1167106,1167185 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3:774578-796573 Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Fri Sep 9 14:12:23 2011 @@ -35,7 +35,7 @@ * add scheduler JMX metrics (CASSANDRA-2962) * add block level checksum for compressed data (CASSANDRA-1717) * make column family backed column map pluggable and introduce unsynchronized - ArrayList backed one to speedup reads (CASSANDRA-2843) + ArrayList backed one to speedup reads (CASSANDRA-2843, 3165) * refactoring of the secondary index api (CASSANDRA-2982) * make CL > ONE reads wait for digest reconciliation before returning (CASSANDRA-2494) Propchange: cassandra/trunk/contrib/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018 -/cassandra/branches/cassandra-1.0/contrib:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/contrib:1167106 +/cassandra/branches/cassandra-1.0/contrib:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/contrib:1167106,1167185 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166782,1166809 /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:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167106 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167106,1167185 /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 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1166782,1166809 /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:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167106 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167106,1167185 /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 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1166782,1166809 /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:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167106 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167106,1167185 /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 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1166782,1166809 /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:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167106 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167106,1167185 /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 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 9 14:12:23 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1166782,1166809 /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:1167106-1167107 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167106 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167106-1167107,1167185,1167188 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167106,1167185 /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 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198 Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java Fri Sep 9 14:12:23 2011 @@ -67,6 +67,11 @@ public class ArrayBackedSortedColumns ex this.reversed = reversed; } + public ISortedColumns.Factory getFactory() + { + return factory(); + } + public AbstractType<?> getComparator() { return comparator; Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java Fri Sep 9 14:12:23 2011 @@ -81,14 +81,19 @@ public class ColumnFamily extends Abstra this.cfm = cfm; } - public ColumnFamily cloneMeShallow() + public ColumnFamily cloneMeShallow(ISortedColumns.Factory factory) { - ColumnFamily cf = ColumnFamily.create(cfm); + ColumnFamily cf = ColumnFamily.create(cfm, factory); // since deletion info is immutable, aliasing it is fine cf.deletionInfo.set(deletionInfo.get()); return cf; } + public ColumnFamily cloneMeShallow() + { + return cloneMeShallow(columns.getFactory()); + } + public AbstractType getSubComparator() { IColumnSerializer s = getColumnSerializer(); 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=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Sep 9 14:12:23 2011 @@ -1162,8 +1162,11 @@ public class ColumnFamilyStore implement } } - /** filter a cached row, which will not be modified by the filter, but may be modified by throwing out - * tombstones that are no longer relevant. */ + /** + * Filter a cached row, which will not be modified by the filter, but may be modified by throwing out + * tombstones that are no longer relevant. + * The returned column family won't be thread safe. + */ ColumnFamily filterColumnFamily(ColumnFamily cached, QueryFilter filter, int gcBefore) { // special case slicing the entire row: @@ -1184,7 +1187,7 @@ public class ColumnFamilyStore implement IColumn sc = cached.getColumn(filter.path.superColumnName); if (sc == null || sliceFilter.count >= sc.getSubColumns().size()) { - ColumnFamily cf = cached.cloneMeShallow(); + ColumnFamily cf = cached.cloneMeShallow(ArrayBackedSortedColumns.factory()); if (sc != null) cf.addColumn(sc, HeapAllocator.instance); return removeDeleted(cf, gcBefore); @@ -1203,7 +1206,7 @@ public class ColumnFamilyStore implement } IColumnIterator ci = filter.getMemtableColumnIterator(cached, null, getComparator()); - ColumnFamily cf = ci.getColumnFamily().cloneMeShallow(); + ColumnFamily cf = ci.getColumnFamily().cloneMeShallow(ArrayBackedSortedColumns.factory()); filter.collateColumns(cf, Collections.singletonList(ci), getComparator(), gcBefore); // 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. Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ISortedColumns.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ISortedColumns.java?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ISortedColumns.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ISortedColumns.java Fri Sep 9 14:12:23 2011 @@ -42,6 +42,11 @@ public interface ISortedColumns extends public ISortedColumns cloneMe(); /** + * Returns the factory used for this ISortedColumns implementation. + */ + public Factory getFactory(); + + /** * Adds a column to this column map. * If a column with the same name is already present in the map, it will * be replaced by the newly added column. Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ThreadSafeSortedColumns.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ThreadSafeSortedColumns.java?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ThreadSafeSortedColumns.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ThreadSafeSortedColumns.java Fri Sep 9 14:12:23 2011 @@ -62,6 +62,11 @@ public class ThreadSafeSortedColumns ext super(columns); } + public ISortedColumns.Factory getFactory() + { + return factory(); + } + public ISortedColumns cloneMe() { return new ThreadSafeSortedColumns(this); Modified: cassandra/trunk/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java?rev=1167192&r1=1167191&r2=1167192&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java Fri Sep 9 14:12:23 2011 @@ -62,6 +62,11 @@ public class TreeMapBackedSortedColumns super(columns); } + public ISortedColumns.Factory getFactory() + { + return factory(); + } + public ISortedColumns cloneMe() { return new TreeMapBackedSortedColumns(this);