ColumnFamily-related cleanups patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for CASSANDRA-6662
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0e43885a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0e43885a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0e43885a Branch: refs/heads/trunk Commit: 0e43885ab24768177cc1e758e1ab69b6dc1b23db Parents: 5a3ffc0 Author: Aleksey Yeschenko <[email protected]> Authored: Sun Feb 9 06:22:47 2014 +0300 Committer: Aleksey Yeschenko <[email protected]> Committed: Tue Feb 11 20:35:31 2014 +0300 ---------------------------------------------------------------------- .../cassandra/db/ArrayBackedSortedColumns.java | 56 +++++--------------- .../apache/cassandra/db/AtomicBTreeColumns.java | 15 +----- .../cassandra/db/CollationController.java | 5 +- .../org/apache/cassandra/db/ColumnFamily.java | 50 ++--------------- .../apache/cassandra/db/ColumnFamilyStore.java | 23 ++++---- .../org/apache/cassandra/db/EmptyColumns.java | 18 ++----- .../db/TreeMapBackedSortedColumns.java | 47 ++-------------- .../cassandra/db/index/keys/KeysSearcher.java | 6 +-- .../db/ArrayBackedSortedColumnsTest.java | 25 ++++----- .../apache/cassandra/db/ColumnFamilyTest.java | 15 +++--- 10 files changed, 58 insertions(+), 202 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java index b81e403..ba082e9 100644 --- a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java +++ b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java @@ -29,7 +29,6 @@ import org.apache.cassandra.db.composites.CellName; import org.apache.cassandra.db.composites.CellNameType; import org.apache.cassandra.db.composites.Composite; import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.utils.memory.AbstractAllocator; /** * A ColumnFamily backed by an ArrayList. @@ -55,14 +54,14 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns { super(metadata); this.reversed = reversed; - this.cells = new ArrayList<Cell>(); + this.cells = new ArrayList<>(); } private ArrayBackedSortedColumns(Collection<Cell> cells, CFMetaData metadata, boolean reversed) { super(metadata); this.reversed = reversed; - this.cells = new ArrayList<Cell>(cells); + this.cells = new ArrayList<>(cells); } public ColumnFamily.Factory getFactory() @@ -91,7 +90,7 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns return pos >= 0 ? cells.get(pos) : null; } - public void addColumn(Cell cell, AbstractAllocator allocator) + public void addColumn(Cell cell) { if (cells.isEmpty()) { @@ -109,13 +108,13 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns else if (c == 0) { // Resolve against last - resolveAgainst(getColumnCount() - 1, cell, allocator); + resolveAgainst(getColumnCount() - 1, cell); } else { int pos = binarySearch(cell.name()); if (pos >= 0) - resolveAgainst(pos, cell, allocator); + resolveAgainst(pos, cell); else cells.add(-pos - 1, cell); } @@ -125,13 +124,9 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns * Resolve against element at position i. * Assume that i is a valid position. */ - private void resolveAgainst(int i, Cell cell, AbstractAllocator allocator) + private void resolveAgainst(int i, Cell cell) { - Cell oldCell = cells.get(i); - - // calculate reconciled col from old (existing) col and new col - Cell reconciledCell = cell.reconcile(oldCell, allocator); - cells.set(i, reconciledCell); + cells.set(i, cell.reconcile(cells.get(i))); } private int binarySearch(CellName name) @@ -155,22 +150,16 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns { mid = (low + high) >> 1; if ((result = comparator.compare(name, cells.get(mid).name())) > 0) - { low = mid + 1; - } else if (result == 0) - { return mid; - } else - { high = mid - 1; - } } return -mid - (result < 0 ? 1 : 2); } - public void addAll(ColumnFamily cm, AbstractAllocator allocator, Function<Cell, Cell> transformation) + public void addAll(ColumnFamily cm) { delete(cm.deletionInfo()); if (cm.getColumnCount() == 0) @@ -193,42 +182,28 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns } else if (c > 0) { - cells.add(transformation.apply(otherCell)); + cells.add(otherCell); otherCell = other.hasNext() ? other.next() : null; } else // c == 0 { cells.add(copy[idx]); - resolveAgainst(getColumnCount() - 1, transformation.apply(otherCell), allocator); + resolveAgainst(getColumnCount() - 1, otherCell); idx++; otherCell = other.hasNext() ? other.next() : null; } } + while (idx < copy.length) - { cells.add(copy[idx++]); - } + while (otherCell != null) { - cells.add(transformation.apply(otherCell)); + cells.add(otherCell); otherCell = other.hasNext() ? other.next() : null; } } - public boolean replace(Cell oldCell, Cell newCell) - { - if (!oldCell.name().equals(newCell.name())) - throw new IllegalArgumentException(); - - int pos = binarySearch(oldCell.name()); - if (pos >= 0) - { - cells.set(pos, newCell); - } - - return pos >= 0; - } - public Collection<Cell> getSortedColumns() { return reversed ? new ReverseSortedCollection() : cells; @@ -264,11 +239,6 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns }); } - public Iterator<Cell> iterator() - { - return reversed ? Lists.reverse(cells).iterator() : cells.iterator(); - } - public Iterator<Cell> iterator(ColumnSlice[] slices) { return new SlicesIterator(cells, getComparator(), slices, reversed); http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java index c1c7b66..5f56326 100644 --- a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java +++ b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java @@ -34,7 +34,6 @@ import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.composites.CellName; import org.apache.cassandra.db.composites.CellNameType; import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.db.index.SecondaryIndexManager; import org.apache.cassandra.utils.ObjectSizes; import org.apache.cassandra.utils.btree.BTree; import org.apache.cassandra.utils.btree.BTreeSet; @@ -93,11 +92,6 @@ public class AtomicBTreeColumns extends ColumnFamily this.ref = holder; } - public CellNameType getComparator() - { - return metadata.comparator; - } - public Factory getFactory() { return factory; @@ -158,11 +152,6 @@ public class AtomicBTreeColumns extends ColumnFamily } } - public void addAll(ColumnFamily cm, AbstractAllocator allocator, Function<Cell, Cell> transformation) - { - addAllWithSizeDelta(cm, allocator, transformation, SecondaryIndexManager.nullUpdater, new Delta()); - } - // the function we provide to the btree utilities to perform any column replacements private static final class ColumnUpdater implements UpdateFunction<Cell> { @@ -282,12 +271,12 @@ public class AtomicBTreeColumns extends ColumnFamily // no particular reason not to implement these next methods, we just haven't needed them yet - public void addColumn(Cell column, AbstractAllocator allocator) + public void addColumn(Cell column) { throw new UnsupportedOperationException(); } - public boolean replace(Cell oldColumn, Cell newColumn) + public void addAll(ColumnFamily cf) { throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/CollationController.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/CollationController.java b/src/java/org/apache/cassandra/db/CollationController.java index 0ce2654..3fd3e8b 100644 --- a/src/java/org/apache/cassandra/db/CollationController.java +++ b/src/java/org/apache/cassandra/db/CollationController.java @@ -30,7 +30,6 @@ import org.apache.cassandra.db.marshal.CounterColumnType; import org.apache.cassandra.io.sstable.SSTableReader; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.tracing.Tracing; -import org.apache.cassandra.utils.memory.HeapAllocator; public class CollationController { @@ -87,7 +86,7 @@ public class CollationController temp.addAtom(iter.next()); } - container.addAll(temp, HeapAllocator.instance); + container.addAll(temp); temp.clear(); } @@ -129,7 +128,7 @@ public class CollationController temp.addAtom(iter.next()); } - container.addAll(temp, HeapAllocator.instance); + container.addAll(temp); temp.clear(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/ColumnFamily.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamily.java b/src/java/org/apache/cassandra/db/ColumnFamily.java index 610e869..2bf91bf 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamily.java +++ b/src/java/org/apache/cassandra/db/ColumnFamily.java @@ -28,12 +28,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import com.google.common.base.Function; -import com.google.common.base.Functions; import com.google.common.collect.ImmutableMap; - -import org.apache.cassandra.utils.memory.AbstractAllocator; -import org.apache.cassandra.utils.memory.HeapAllocator; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.cassandra.cache.IRowCacheEntry; @@ -125,11 +120,6 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry } } - public void addColumn(Cell cell) - { - addColumn(cell, HeapAllocator.instance); - } - public void addColumn(CellName name, ByteBuffer value, long timestamp) { addColumn(name, value, timestamp, 0); @@ -210,7 +200,7 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry * If a cell with the same name is already present in the map, it will * be replaced by the newly added cell. */ - public abstract void addColumn(Cell cell, AbstractAllocator allocator); + public abstract void addColumn(Cell cell); /** * Adds all the columns of a given column map to this column map. @@ -221,14 +211,7 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry * </code> * but is potentially faster. */ - public abstract void addAll(ColumnFamily cm, AbstractAllocator allocator, Function<Cell, Cell> transformation); - - /** - * Replace oldCell if present by newCell. - * Returns true if oldCell was present and thus replaced. - * oldCell and newCell should have the same name. - */ - public abstract boolean replace(Cell oldCell, Cell newCell); + public abstract void addAll(ColumnFamily cm); /** * Get a column given its name, returning null if the column is not @@ -294,11 +277,6 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry delete(columns.deletionInfo()); } - public void addAll(ColumnFamily cf, AbstractAllocator allocator) - { - addAll(cf, allocator, Functions.<Cell>identity()); - } - /* * This function will calculate the difference between 2 column families. * The external input is assumed to be a superset of internal. @@ -381,7 +359,7 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry public String toString() { StringBuilder sb = new StringBuilder("ColumnFamily("); - sb.append(metadata == null ? "<anonymous>" : metadata.cfName); + sb.append(metadata.cfName); if (isMarkedForDelete()) sb.append(" -").append(deletionInfo()).append("-"); @@ -413,15 +391,10 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry public void resolve(ColumnFamily cf) { - resolve(cf, HeapAllocator.instance); - } - - public void resolve(ColumnFamily cf, AbstractAllocator allocator) - { // Row _does_ allow null CF objects :( seems a necessary evil for efficiency if (cf == null) return; - addAll(cf, allocator); + addAll(cf); } public ColumnStats getColumnStats() @@ -485,21 +458,6 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry return getReverseSortedColumns().iterator(); } - public boolean hasIrrelevantData(int gcBefore) - { - // Do we have gcable deletion infos? - if (deletionInfo().hasPurgeableTombstones(gcBefore)) - return true; - - // Do we have colums that are either deleted by the container or gcable tombstone? - DeletionInfo.InOrderTester tester = inOrderDeletionTester(); - for (Cell cell : this) - if (tester.isDeleted(cell) || cell.hasIrrelevantData(gcBefore)) - return true; - - return false; - } - public Map<CellName, ByteBuffer> asMap() { ImmutableMap.Builder<CellName, ByteBuffer> builder = ImmutableMap.builder(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 961d126..0b3f64e 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -33,13 +33,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.collect.*; import com.google.common.util.concurrent.*; -import org.apache.cassandra.concurrent.NamedThreadFactory; -import org.apache.cassandra.utils.concurrent.OpOrder; -import org.apache.cassandra.concurrent.StageManager; -import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.db.filter.SliceQueryFilter; -import org.apache.cassandra.utils.memory.HeapAllocator; - import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Uninterruptibles; @@ -48,19 +41,22 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.cache.*; import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; +import org.apache.cassandra.concurrent.NamedThreadFactory; +import org.apache.cassandra.concurrent.StageManager; import org.apache.cassandra.config.*; import org.apache.cassandra.config.CFMetaData.SpeculativeRetry; import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.commitlog.ReplayPosition; import org.apache.cassandra.db.compaction.*; -import org.apache.cassandra.db.filter.ExtendedFilter; -import org.apache.cassandra.db.filter.IDiskAtomFilter; -import org.apache.cassandra.db.filter.QueryFilter; import org.apache.cassandra.db.composites.CellName; -import org.apache.cassandra.db.composites.Composites; import org.apache.cassandra.db.composites.CellNameType; import org.apache.cassandra.db.composites.Composite; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.filter.ExtendedFilter; +import org.apache.cassandra.db.filter.IDiskAtomFilter; +import org.apache.cassandra.db.filter.QueryFilter; +import org.apache.cassandra.db.filter.SliceQueryFilter; import org.apache.cassandra.db.index.SecondaryIndex; import org.apache.cassandra.db.index.SecondaryIndexManager; import org.apache.cassandra.dht.*; @@ -74,13 +70,12 @@ import org.apache.cassandra.io.sstable.metadata.CompactionMetadata; import org.apache.cassandra.io.sstable.metadata.MetadataType; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.metrics.ColumnFamilyMetrics; -import org.apache.cassandra.service.ActiveRepairService; import org.apache.cassandra.service.CacheService; import org.apache.cassandra.service.StorageService; - import org.apache.cassandra.streaming.StreamLockfile; import org.apache.cassandra.tracing.Tracing; import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; import static org.apache.cassandra.config.CFMetaData.Caching; @@ -2066,7 +2061,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean { ColumnFamily cf = filter.cfs.getColumnFamily(new QueryFilter(rawRow.key, name, extraFilter, filter.timestamp)); if (cf != null) - data.addAll(cf, HeapAllocator.instance); + data.addAll(cf); } removeDroppedColumns(data); http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/EmptyColumns.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/EmptyColumns.java b/src/java/org/apache/cassandra/db/EmptyColumns.java index 5021f39..fa6ea1b 100644 --- a/src/java/org/apache/cassandra/db/EmptyColumns.java +++ b/src/java/org/apache/cassandra/db/EmptyColumns.java @@ -1,4 +1,3 @@ -package org.apache.cassandra.db; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -19,19 +18,17 @@ package org.apache.cassandra.db; * under the License. * */ - +package org.apache.cassandra.db; import java.util.Collection; import java.util.Collections; import java.util.Iterator; +import com.google.common.collect.Iterators; + import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.composites.CellName; import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.utils.memory.AbstractAllocator; - -import com.google.common.base.Function; -import com.google.common.collect.Iterators; public class EmptyColumns extends AbstractThreadUnsafeSortedColumns { @@ -63,17 +60,12 @@ public class EmptyColumns extends AbstractThreadUnsafeSortedColumns return factory; } - public void addColumn(Cell cell, AbstractAllocator allocator) - { - throw new UnsupportedOperationException(); - } - - public void addAll(ColumnFamily cm, AbstractAllocator allocator, Function<Cell, Cell> transformation) + public void addColumn(Cell cell) { throw new UnsupportedOperationException(); } - public boolean replace(Cell oldCell, Cell newCell) + public void addAll(ColumnFamily cm) { throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java b/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java index 09c50fa..dadb021 100644 --- a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java +++ b/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java @@ -23,13 +23,10 @@ import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeMap; -import com.google.common.base.Function; - import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.composites.CellName; -import org.apache.cassandra.db.composites.CellNameType; import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.utils.memory.AbstractAllocator; +import org.apache.cassandra.utils.memory.HeapAllocator; public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumns { @@ -44,11 +41,6 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn } }; - public CellNameType getComparator() - { - return (CellNameType)map.comparator(); - } - private TreeMapBackedSortedColumns(CFMetaData metadata) { super(metadata); @@ -80,7 +72,7 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn * If we find an old cell that has the same name * the ask it to resolve itself else add the new cell */ - public void addColumn(Cell cell, AbstractAllocator allocator) + public void addColumn(Cell cell) { CellName name = cell.name(); // this is a slightly unusual way to structure this; a more natural way is shown in ThreadSafeSortedColumns, @@ -92,40 +84,17 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn return; // calculate reconciled col from old (existing) col and new col - map.put(name, cell.reconcile(oldCell, allocator)); + map.put(name, cell.reconcile(oldCell, HeapAllocator.instance)); } /** * We need to go through each column in the column container and resolve it before adding */ - public void addAll(ColumnFamily cm, AbstractAllocator allocator, Function<Cell, Cell> transformation) + public void addAll(ColumnFamily cm) { delete(cm.deletionInfo()); for (Cell cell : cm) - addColumn(transformation.apply(cell), allocator); - } - - public boolean replace(Cell oldCell, Cell newCell) - { - if (!oldCell.name().equals(newCell.name())) - throw new IllegalArgumentException(); - - // We are not supposed to put the newCell is either there was not - // column or the column was not equal to oldCell (to be coherent - // with other implementation). We optimize for the common case where - // oldCell do is present though. - Cell previous = map.put(oldCell.name(), newCell); - if (previous == null) - { - map.remove(oldCell.name()); - return false; - } - if (!previous.equals(oldCell)) - { - map.put(oldCell.name(), previous); - return false; - } - return true; + addColumn(cell); } public Cell getColumn(CellName name) @@ -159,11 +128,6 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn return map.navigableKeySet(); } - public Iterator<Cell> iterator() - { - return map.values().iterator(); - } - public Iterator<Cell> iterator(ColumnSlice[] slices) { return new ColumnSlice.NavigableMapIterator(map, slices); @@ -173,5 +137,4 @@ public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumn { return new ColumnSlice.NavigableMapIterator(map.descendingMap(), slices); } - } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java index d491c93..f08ba4d 100644 --- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java +++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java @@ -24,8 +24,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import org.apache.cassandra.utils.concurrent.OpOrder; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,7 +38,7 @@ import org.apache.cassandra.db.filter.QueryFilter; import org.apache.cassandra.db.index.*; import org.apache.cassandra.dht.AbstractBounds; import org.apache.cassandra.dht.Range; -import org.apache.cassandra.utils.memory.HeapAllocator; +import org.apache.cassandra.utils.concurrent.OpOrder; public class KeysSearcher extends SecondaryIndexSearcher { @@ -182,7 +180,7 @@ public class KeysSearcher extends SecondaryIndexSearcher { ColumnFamily cf = baseCfs.getColumnFamily(new QueryFilter(dk, baseCfs.name, extraFilter, filter.timestamp)); if (cf != null) - data.addAll(cf, HeapAllocator.instance); + data.addAll(cf); } if (((KeysIndex)index).isIndexEntryStale(indexKey.key, data, filter.timestamp)) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java b/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java index cd837c8..d98dab6 100644 --- a/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java +++ b/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java @@ -1,4 +1,3 @@ -package org.apache.cassandra.db; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -19,23 +18,19 @@ package org.apache.cassandra.db; * under the License. * */ - +package org.apache.cassandra.db; import java.util.*; - import org.junit.Test; import static org.junit.Assert.*; -import com.google.common.base.Functions; - import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.Schema; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.db.composites.*; import org.apache.cassandra.db.filter.ColumnSlice; -import org.apache.cassandra.utils.memory.HeapAllocator; import org.apache.cassandra.db.marshal.Int32Type; public class ArrayBackedSortedColumnsTest extends SchemaLoader @@ -59,7 +54,7 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader int[] values = new int[]{ 1, 2, 2, 3 }; for (int i = 0; i < values.length; ++i) - map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])), HeapAllocator.instance); + map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i]))); Iterator<Cell> iter = map.iterator(); assertEquals("1st column", 1, iter.next().name().toByteBuffer().getInt(0)); @@ -84,12 +79,12 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader int[] values2 = new int[]{ 2, 4, 5, 6 }; for (int i = 0; i < values1.length; ++i) - map.addColumn(new Cell(type.makeCellName(values1[reversed ? values1.length - 1 - i : i])), HeapAllocator.instance); + map.addColumn(new Cell(type.makeCellName(values1[reversed ? values1.length - 1 - i : i]))); for (int i = 0; i < values2.length; ++i) - map2.addColumn(new Cell(type.makeCellName(values2[reversed ? values2.length - 1 - i : i])), HeapAllocator.instance); + map2.addColumn(new Cell(type.makeCellName(values2[reversed ? values2.length - 1 - i : i]))); - map2.addAll(map, HeapAllocator.instance, Functions.<Cell>identity()); + map2.addAll(map); Iterator<Cell> iter = map2.iterator(); assertEquals("1st column", 1, iter.next().name().toByteBuffer().getInt(0)); @@ -113,14 +108,14 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader ColumnFamily map = ArrayBackedSortedColumns.factory.create(metadata(), reversed); int[] values = new int[]{ 1, 2, 3, 5, 9 }; - List<Cell> sorted = new ArrayList<Cell>(); + List<Cell> sorted = new ArrayList<>(); for (int v : values) sorted.add(new Cell(type.makeCellName(v))); - List<Cell> reverseSorted = new ArrayList<Cell>(sorted); + List<Cell> reverseSorted = new ArrayList<>(sorted); Collections.reverse(reverseSorted); for (int i = 0; i < values.length; ++i) - map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])), HeapAllocator.instance); + map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i]))); assertSame(sorted, map.getSortedColumns()); assertSame(reverseSorted, map.getReverseSortedColumns()); @@ -141,7 +136,7 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader int[] values = new int[]{ 1, 2, 3, 5, 9 }; for (int i = 0; i < values.length; ++i) - map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])), HeapAllocator.instance); + map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i]))); assertSame(new int[]{ 3, 2, 1 }, map.reverseIterator(new ColumnSlice[]{ new ColumnSlice(type.make(3), Composites.EMPTY) })); assertSame(new int[]{ 3, 2, 1 }, map.reverseIterator(new ColumnSlice[]{ new ColumnSlice(type.make(4), Composites.EMPTY) })); @@ -187,7 +182,7 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader int[] values = new int[]{ 1, 2, 2, 3 }; for (int i = 0; i < values.length; ++i) - map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])), HeapAllocator.instance); + map.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i]))); Iterator<Cell> iter = map.getReverseSortedColumns().iterator(); assertTrue(iter.hasNext()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e43885a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java b/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java index cd79217..ae2a461 100644 --- a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java +++ b/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java @@ -25,21 +25,18 @@ import java.nio.ByteBuffer; import java.util.*; import com.google.common.collect.Iterables; - -import org.apache.cassandra.SchemaLoader; import org.junit.Test; +import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.io.sstable.ColumnStats; import org.apache.cassandra.io.util.DataOutputBuffer; import org.apache.cassandra.net.MessagingService; +import org.apache.cassandra.utils.ByteBufferUtil; + import static org.apache.cassandra.Util.column; import static org.apache.cassandra.Util.cellname; import static org.junit.Assert.assertEquals; -import org.apache.cassandra.utils.ByteBufferUtil; -import org.apache.cassandra.utils.memory.HeapAllocator; - - public class ColumnFamilyTest extends SchemaLoader { static int version = MessagingService.current_version; @@ -68,7 +65,7 @@ public class ColumnFamilyTest extends SchemaLoader { ColumnFamily cf; - TreeMap<String, String> map = new TreeMap<String, String>(); + TreeMap<String, String> map = new TreeMap<>(); for (int i = 100; i < 1000; ++i) { map.put(Integer.toString(i), "Avinash Lakshman is a good man: " + i); @@ -134,8 +131,8 @@ public class ColumnFamilyTest extends SchemaLoader cf_old.addColumn(cellname("col2"), val2, 1); cf_old.addColumn(cellname("col3"), val2, 2); - cf_result.addAll(cf_new, HeapAllocator.instance); - cf_result.addAll(cf_old, HeapAllocator.instance); + cf_result.addAll(cf_new); + cf_result.addAll(cf_old); assert 3 == cf_result.getColumnCount() : "Count is " + cf_new.getColumnCount(); //addcolumns will only add if timestamp >= old timestamp
