You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/02/11 18:35:56 UTC
[1/3] git commit: Replace TMBSC usage with ABSC and kill TMBSC
Updated Branches:
refs/heads/trunk 5a3ffc090 -> 520457502
Replace TMBSC usage with ABSC and kill TMBSC
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/52045750
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/52045750
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/52045750
Branch: refs/heads/trunk
Commit: 5204575022030ce2e899edf36847fc3744f3d0ca
Parents: fb1c6b9
Author: Aleksey Yeschenko <al...@yeschenko.com>
Authored: Tue Feb 11 01:59:15 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Feb 11 20:35:31 2014 +0300
----------------------------------------------------------------------
.../cql3/statements/DeleteStatement.java | 2 +-
.../cql3/statements/ModificationStatement.java | 2 +-
.../org/apache/cassandra/db/ColumnFamily.java | 2 +-
src/java/org/apache/cassandra/db/Mutation.java | 2 +-
.../apache/cassandra/db/RowIteratorFactory.java | 2 +-
.../db/TreeMapBackedSortedColumns.java | 140 -------------------
.../cassandra/db/compaction/Scrubber.java | 2 +-
.../db/index/composites/CompositesSearcher.java | 2 +-
.../cassandra/db/index/keys/KeysSearcher.java | 2 +-
.../io/sstable/SSTableSimpleUnsortedWriter.java | 4 +-
.../io/sstable/SSTableSimpleWriter.java | 2 +-
.../apache/cassandra/tools/SSTableImport.java | 2 +-
.../apache/cassandra/tracing/TraceState.java | 4 +-
.../org/apache/cassandra/tracing/Tracing.java | 2 +-
.../cassandra/db/LongFlushMemtableTest.java | 2 +-
.../apache/cassandra/db/LongKeyspaceTest.java | 2 +-
.../cassandra/cache/CacheProviderTest.java | 4 +-
.../cassandra/db/ColumnFamilyStoreTest.java | 4 +-
.../apache/cassandra/db/ColumnFamilyTest.java | 16 +--
.../org/apache/cassandra/db/KeyspaceTest.java | 26 ++--
.../org/apache/cassandra/db/MultitableTest.java | 4 +-
.../cassandra/db/RecoveryManager2Test.java | 2 +-
.../cassandra/db/RecoveryManager3Test.java | 4 +-
.../cassandra/db/RecoveryManagerTest.java | 8 +-
.../db/RecoveryManagerTruncateTest.java | 2 +-
test/unit/org/apache/cassandra/db/RowTest.java | 8 +-
.../unit/org/apache/cassandra/db/ScrubTest.java | 6 +-
.../apache/cassandra/db/SerializationsTest.java | 4 +-
.../cassandra/io/sstable/SSTableUtils.java | 4 +-
.../cassandra/service/RowResolverTest.java | 26 ++--
.../service/pager/AbstractQueryPagerTest.java | 2 +-
.../streaming/StreamingTransferTest.java | 8 +-
.../cassandra/tools/SSTableExportTest.java | 14 +-
.../cassandra/utils/EncodedStreamsTest.java | 6 +-
34 files changed, 91 insertions(+), 231 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java b/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java
index d3dfe7c..7112b79 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java
@@ -46,7 +46,7 @@ public class DeleteStatement extends ModificationStatement
public ColumnFamily updateForKey(ByteBuffer key, Composite prefix, UpdateParameters params)
throws InvalidRequestException
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfm);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfm);
List<Operation> deletions = getOperations();
if (prefix.size() < cfm.clusteringColumns().size() && !deletions.isEmpty())
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
index f35690b..3775bde 100644
--- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
@@ -585,7 +585,7 @@ public abstract class ModificationStatement implements CQLStatement, MeasurableF
long now) throws InvalidRequestException
{
super(rowPrefix, now);
- this.expected = TreeMapBackedSortedColumns.factory.create(cfm);
+ this.expected = ArrayBackedSortedColumns.factory.create(cfm);
// When building the conditions, we should not use a TTL. It's not useful, and if a very low ttl (1 seconds) is used, it's possible
// for it to expire before the actual build of the conditions which would break since we would then testing for the presence of tombstones.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/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 2bf91bf..66e8e33 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamily.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamily.java
@@ -284,7 +284,7 @@ public abstract class ColumnFamily implements Iterable<Cell>, IRowCacheEntry
public ColumnFamily diff(ColumnFamily cfComposite)
{
assert cfComposite.id().equals(id());
- ColumnFamily cfDiff = TreeMapBackedSortedColumns.factory.create(metadata);
+ ColumnFamily cfDiff = ArrayBackedSortedColumns.factory.create(metadata);
cfDiff.delete(cfComposite.deletionInfo());
// (don't need to worry about cfNew containing Columns that are shadowed by
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/db/Mutation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java
index ef9b02d..bb7dcef 100644
--- a/src/java/org/apache/cassandra/db/Mutation.java
+++ b/src/java/org/apache/cassandra/db/Mutation.java
@@ -132,7 +132,7 @@ public class Mutation implements IMutation
ColumnFamily cf = modifications.get(cfm.cfId);
if (cf == null)
{
- cf = TreeMapBackedSortedColumns.factory.create(cfm);
+ cf = ArrayBackedSortedColumns.factory.create(cfm);
modifications.put(cfm.cfId, cf);
}
return cf;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/db/RowIteratorFactory.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/RowIteratorFactory.java b/src/java/org/apache/cassandra/db/RowIteratorFactory.java
index 7077944..31a2b38 100644
--- a/src/java/org/apache/cassandra/db/RowIteratorFactory.java
+++ b/src/java/org/apache/cassandra/db/RowIteratorFactory.java
@@ -82,7 +82,7 @@ public class RowIteratorFactory
@Override
protected void onKeyChange()
{
- this.returnCF = TreeMapBackedSortedColumns.factory.create(cfs.metadata);
+ this.returnCF = ArrayBackedSortedColumns.factory.create(cfs.metadata);
}
public void reduce(OnDiskAtomIterator current)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/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
deleted file mode 100644
index dadb021..0000000
--- a/src/java/org/apache/cassandra/db/TreeMapBackedSortedColumns.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.db;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.SortedMap;
-import java.util.SortedSet;
-import java.util.TreeMap;
-
-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.HeapAllocator;
-
-public class TreeMapBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
-{
- private final TreeMap<CellName, Cell> map;
-
- public static final ColumnFamily.Factory<TreeMapBackedSortedColumns> factory = new Factory<TreeMapBackedSortedColumns>()
- {
- public TreeMapBackedSortedColumns create(CFMetaData metadata, boolean insertReversed)
- {
- assert !insertReversed;
- return new TreeMapBackedSortedColumns(metadata);
- }
- };
-
- private TreeMapBackedSortedColumns(CFMetaData metadata)
- {
- super(metadata);
- this.map = new TreeMap<>(metadata.comparator);
- }
-
- private TreeMapBackedSortedColumns(CFMetaData metadata, SortedMap<CellName, Cell> columns)
- {
- super(metadata);
- this.map = new TreeMap<>(columns);
- }
-
- public ColumnFamily.Factory getFactory()
- {
- return factory;
- }
-
- public ColumnFamily cloneMe()
- {
- return new TreeMapBackedSortedColumns(metadata, map);
- }
-
- public boolean isInsertReversed()
- {
- return false;
- }
-
- /*
- * 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)
- {
- CellName name = cell.name();
- // this is a slightly unusual way to structure this; a more natural way is shown in ThreadSafeSortedColumns,
- // but TreeMap lacks putAbsent. Rather than split it into a "get, then put" check, we do it as follows,
- // which saves the extra "get" in the no-conflict case [for both normal and super columns],
- // in exchange for a re-put in the SuperColumn case.
- Cell oldCell = map.put(name, cell);
- if (oldCell == null)
- return;
-
- // calculate reconciled col from old (existing) col and new col
- 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)
- {
- delete(cm.deletionInfo());
- for (Cell cell : cm)
- addColumn(cell);
- }
-
- public Cell getColumn(CellName name)
- {
- return map.get(name);
- }
-
- public void clear()
- {
- setDeletionInfo(DeletionInfo.live());
- map.clear();
- }
-
- public int getColumnCount()
- {
- return map.size();
- }
-
- public Collection<Cell> getSortedColumns()
- {
- return map.values();
- }
-
- public Collection<Cell> getReverseSortedColumns()
- {
- return map.descendingMap().values();
- }
-
- public SortedSet<CellName> getColumnNames()
- {
- return map.navigableKeySet();
- }
-
- public Iterator<Cell> iterator(ColumnSlice[] slices)
- {
- return new ColumnSlice.NavigableMapIterator(map, slices);
- }
-
- public Iterator<Cell> reverseIterator(ColumnSlice[] slices)
- {
- return new ColumnSlice.NavigableMapIterator(map.descendingMap(), slices);
- }
-}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/db/compaction/Scrubber.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/Scrubber.java b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
index 32bef04..ff04723 100644
--- a/src/java/org/apache/cassandra/db/compaction/Scrubber.java
+++ b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
@@ -300,7 +300,7 @@ public class Scrubber implements Closeable
outputHandler.warn(String.format("Out of order row detected (%s found after %s)", key, prevKey));
// adding atoms in sorted order is worst-case for TMBSC, but we shouldn't need to do this very often
// and there's no sense in failing on mis-sorted cells when a TreeMap could safe us
- ColumnFamily cf = atoms.getColumnFamily().cloneMeShallow(TreeMapBackedSortedColumns.factory, false);
+ ColumnFamily cf = atoms.getColumnFamily().cloneMeShallow(ArrayBackedSortedColumns.factory, false);
while (atoms.hasNext())
{
OnDiskAtom atom = atoms.next();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
index b441ff1..fad3d50 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
@@ -273,7 +273,7 @@ public class CompositesSearcher extends SecondaryIndexSearcher
continue;
if (data == null)
- data = TreeMapBackedSortedColumns.factory.create(baseCfs.metadata);
+ data = ArrayBackedSortedColumns.factory.create(baseCfs.metadata);
data.resolve(newData);
columnsCount += dataFilter.lastCounted();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/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 f08ba4d..ce5fe30 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@ -171,7 +171,7 @@ public class KeysSearcher extends SecondaryIndexSearcher
ColumnFamily data = baseCfs.getColumnFamily(new QueryFilter(dk, baseCfs.name, filter.columnFilter(lastSeenKey.toByteBuffer()), filter.timestamp));
// While the column family we'll get in the end should contains the primary clause cell, the initialFilter may not have found it and can thus be null
if (data == null)
- data = TreeMapBackedSortedColumns.factory.create(baseCfs.metadata);
+ data = ArrayBackedSortedColumns.factory.create(baseCfs.metadata);
// as in CFS.filter - extend the filter to ensure we include the columns
// from the index expressions, just in case they weren't included in the initialFilter
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
index c8c7277..38fbece 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
@@ -27,9 +27,9 @@ import java.util.concurrent.SynchronousQueue;
import com.google.common.base.Throwables;
import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.db.ArrayBackedSortedColumns;
import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.TreeMapBackedSortedColumns;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.io.compress.CompressionParameters;
@@ -111,7 +111,7 @@ public class SSTableSimpleUnsortedWriter extends AbstractSSTableSimpleWriter
// If the CF already exist in memory, we'll just continue adding to it
if (previous == null)
{
- previous = TreeMapBackedSortedColumns.factory.create(metadata);
+ previous = ArrayBackedSortedColumns.factory.create(metadata);
buffer.put(currentKey, previous);
}
else
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
index 054d780..87c8e33 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java
@@ -87,6 +87,6 @@ public class SSTableSimpleWriter extends AbstractSSTableSimpleWriter
protected ColumnFamily getColumnFamily()
{
- return TreeMapBackedSortedColumns.factory.create(metadata);
+ return ArrayBackedSortedColumns.factory.create(metadata);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/tools/SSTableImport.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java
index 2cb284e..2a516a4 100644
--- a/src/java/org/apache/cassandra/tools/SSTableImport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableImport.java
@@ -345,7 +345,7 @@ public class SSTableImport
*/
public int importJson(String jsonFile, String keyspace, String cf, String ssTablePath) throws IOException
{
- ColumnFamily columnFamily = TreeMapBackedSortedColumns.factory.create(keyspace, cf);
+ ColumnFamily columnFamily = ArrayBackedSortedColumns.factory.create(keyspace, cf);
IPartitioner<?> partitioner = DatabaseDescriptor.getPartitioner();
int importedKeys = (isSorted) ? importSorted(jsonFile, columnFamily, ssTablePath, partitioner)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/tracing/TraceState.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tracing/TraceState.java b/src/java/org/apache/cassandra/tracing/TraceState.java
index de8ca44..62eb891 100644
--- a/src/java/org/apache/cassandra/tracing/TraceState.java
+++ b/src/java/org/apache/cassandra/tracing/TraceState.java
@@ -28,9 +28,9 @@ import org.slf4j.helpers.MessageFormatter;
import org.apache.cassandra.concurrent.Stage;
import org.apache.cassandra.concurrent.StageManager;
import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.db.ArrayBackedSortedColumns;
import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.Mutation;
-import org.apache.cassandra.db.TreeMapBackedSortedColumns;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.UUIDGen;
@@ -94,7 +94,7 @@ public class TraceState
public void runMayThrow()
{
CFMetaData cfMeta = CFMetaData.TraceEventsCf;
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfMeta);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfMeta);
Tracing.addColumn(cf, Tracing.buildName(cfMeta, eventId, ByteBufferUtil.bytes("activity")), message);
Tracing.addColumn(cf, Tracing.buildName(cfMeta, eventId, ByteBufferUtil.bytes("source")), FBUtilities.getBroadcastAddress());
if (elapsed >= 0)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/src/java/org/apache/cassandra/tracing/Tracing.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tracing/Tracing.java b/src/java/org/apache/cassandra/tracing/Tracing.java
index f22f273..ad63bd8 100644
--- a/src/java/org/apache/cassandra/tracing/Tracing.java
+++ b/src/java/org/apache/cassandra/tracing/Tracing.java
@@ -203,7 +203,7 @@ public class Tracing
public void run()
{
CFMetaData cfMeta = CFMetaData.TraceSessionsCf;
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfMeta);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfMeta);
addColumn(cf, buildName(cfMeta, "coordinator"), FBUtilities.getBroadcastAddress());
addParameterColumns(cf, parameters);
addColumn(cf, buildName(cfMeta, "request"), request);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/long/org/apache/cassandra/db/LongFlushMemtableTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/LongFlushMemtableTest.java b/test/long/org/apache/cassandra/db/LongFlushMemtableTest.java
index e7bfe30..ba59404 100644
--- a/test/long/org/apache/cassandra/db/LongFlushMemtableTest.java
+++ b/test/long/org/apache/cassandra/db/LongFlushMemtableTest.java
@@ -51,7 +51,7 @@ public class LongFlushMemtableTest extends SchemaLoader
for (int i = 0; i < 100; i++)
{
Mutation rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("key" + j));
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "_CF" + i);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "_CF" + i);
// don't cheat by allocating this outside of the loop; that defeats the purpose of deliberately using lots of memory
ByteBuffer value = ByteBuffer.allocate(100000);
cf.addColumn(new Cell(Util.cellname("c"), value));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/long/org/apache/cassandra/db/LongKeyspaceTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/LongKeyspaceTest.java b/test/long/org/apache/cassandra/db/LongKeyspaceTest.java
index d610efa..327ff47 100644
--- a/test/long/org/apache/cassandra/db/LongKeyspaceTest.java
+++ b/test/long/org/apache/cassandra/db/LongKeyspaceTest.java
@@ -38,7 +38,7 @@ public class LongKeyspaceTest extends SchemaLoader
for (int i = 1; i < 5000; i += 100)
{
Mutation rm = new Mutation("Keyspace1", Util.dk("key" + i).key);
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
for (int j = 0; j < i; j++)
cf.addColumn(column("c" + j, "v" + j, 1L));
rm.add(cf);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/cache/CacheProviderTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cache/CacheProviderTest.java b/test/unit/org/apache/cassandra/cache/CacheProviderTest.java
index 849c30c..71d4f80 100644
--- a/test/unit/org/apache/cassandra/cache/CacheProviderTest.java
+++ b/test/unit/org/apache/cassandra/cache/CacheProviderTest.java
@@ -29,10 +29,10 @@ import java.util.UUID;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.db.ArrayBackedSortedColumns;
import org.apache.cassandra.db.ColumnFamily;
import com.googlecode.concurrentlinkedhashmap.Weighers;
-import org.apache.cassandra.db.TreeMapBackedSortedColumns;
import static org.apache.cassandra.Util.column;
import static org.junit.Assert.*;
@@ -100,7 +100,7 @@ public class CacheProviderTest extends SchemaLoader
private ColumnFamily createCF()
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(keyspaceName, cfName);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(keyspaceName, cfName);
cf.addColumn(column("vijay", "great", 1));
cf.addColumn(column("awesome", "vijay", 1));
return cf;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java b/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
index 7bc0256..5c71d9b 100644
--- a/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
+++ b/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
@@ -774,7 +774,7 @@ public class ColumnFamilyStoreTest extends SchemaLoader
private static void putColsSuper(ColumnFamilyStore cfs, DecoratedKey key, ByteBuffer scfName, Cell... cols) throws Throwable
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfs.keyspace.getName(), cfs.name);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfs.keyspace.getName(), cfs.name);
for (Cell col : cols)
cf.addColumn(col.withUpdatedName(CellNames.compositeDense(scfName, col.name().toByteBuffer())));
Mutation rm = new Mutation(cfs.keyspace.getName(), key.key, cf);
@@ -783,7 +783,7 @@ public class ColumnFamilyStoreTest extends SchemaLoader
private static void putColsStandard(ColumnFamilyStore cfs, DecoratedKey key, Cell... cols) throws Throwable
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfs.keyspace.getName(), cfs.name);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfs.keyspace.getName(), cfs.name);
for (Cell col : cols)
cf.addColumn(col);
Mutation rm = new Mutation(cfs.keyspace.getName(), key.key, cf);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/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 ae2a461..693a670 100644
--- a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
+++ b/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
@@ -48,7 +48,7 @@ public class ColumnFamilyTest extends SchemaLoader
{
ColumnFamily cf;
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("C", "v", 1));
DataOutputBuffer bufOut = new DataOutputBuffer();
ColumnFamily.serializer.serialize(cf, bufOut, version);
@@ -72,7 +72,7 @@ public class ColumnFamilyTest extends SchemaLoader
}
// write
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
DataOutputBuffer bufOut = new DataOutputBuffer();
for (String cName : map.navigableKeySet())
{
@@ -94,7 +94,7 @@ public class ColumnFamilyTest extends SchemaLoader
@Test
public void testGetColumnCount()
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "", 1));
cf.addColumn(column("col2", "", 2));
@@ -107,7 +107,7 @@ public class ColumnFamilyTest extends SchemaLoader
@Test
public void testTimestamp()
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 2));
cf.addColumn(column("col1", "val2", 2)); // same timestamp, new value
@@ -119,9 +119,9 @@ public class ColumnFamilyTest extends SchemaLoader
@Test
public void testMergeAndAdd()
{
- ColumnFamily cf_new = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
- ColumnFamily cf_old = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
- ColumnFamily cf_result = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf_new = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf_old = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf_result = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
ByteBuffer val = ByteBufferUtil.bytes("sample value");
ByteBuffer val2 = ByteBufferUtil.bytes("x value ");
@@ -157,7 +157,7 @@ public class ColumnFamilyTest extends SchemaLoader
long timestamp = System.currentTimeMillis();
int localDeletionTime = (int) (System.currentTimeMillis() / 1000);
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.delete(new DeletionInfo(timestamp, localDeletionTime));
ColumnStats stats = cf.getColumnStats();
assertEquals(timestamp, stats.maxTimestamp);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/KeyspaceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/KeyspaceTest.java b/test/unit/org/apache/cassandra/db/KeyspaceTest.java
index ef69518..caaff65 100644
--- a/test/unit/org/apache/cassandra/db/KeyspaceTest.java
+++ b/test/unit/org/apache/cassandra/db/KeyspaceTest.java
@@ -63,7 +63,7 @@ public class KeyspaceTest extends SchemaLoader
final Keyspace keyspace = Keyspace.open("Keyspace2");
final ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard3");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace2", "Standard3");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace2", "Standard3");
cf.addColumn(column("col1","val1", 1L));
Mutation rm = new Mutation("Keyspace2", TEST_KEY.key, cf);
rm.apply();
@@ -93,7 +93,7 @@ public class KeyspaceTest extends SchemaLoader
final Keyspace keyspace = Keyspace.open("Keyspace1");
final ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1","val1", 1L));
cf.addColumn(column("col2","val2", 1L));
cf.addColumn(column("col3","val3", 1L));
@@ -122,7 +122,7 @@ public class KeyspaceTest extends SchemaLoader
DecoratedKey key = TEST_SLICE_KEY;
Keyspace keyspace = Keyspace.open("Keyspace1");
ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
// First write "a", "b", "c"
cf.addColumn(column("a", "val1", 1L));
cf.addColumn(column("b", "val2", 1L));
@@ -144,7 +144,7 @@ public class KeyspaceTest extends SchemaLoader
public void testGetSliceNoMatch() throws Throwable
{
Keyspace keyspace = Keyspace.open("Keyspace1");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard2");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard2");
cf.addColumn(column("col1", "val1", 1));
Mutation rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("row1000"), cf);
rm.apply();
@@ -168,7 +168,7 @@ public class KeyspaceTest extends SchemaLoader
final DecoratedKey ROW = Util.dk("row4");
final NumberFormat fmt = new DecimalFormat("000");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
// at this rate, we're getting 78-79 cos/block, assuming the blocks are set to be about 4k.
// so if we go to 300, we'll get at least 4 blocks, which is plenty for testing.
for (int i = 0; i < 300; i++)
@@ -226,7 +226,7 @@ public class KeyspaceTest extends SchemaLoader
for (int i = 0; i < 10; i++)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "StandardLong1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "StandardLong1");
cf.addColumn(new Cell(cellname((long)i), ByteBufferUtil.EMPTY_BYTE_BUFFER, 0));
Mutation rm = new Mutation("Keyspace1", ROW.key, cf);
rm.apply();
@@ -236,7 +236,7 @@ public class KeyspaceTest extends SchemaLoader
for (int i = 10; i < 20; i++)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "StandardLong1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "StandardLong1");
cf.addColumn(new Cell(cellname((long)i), ByteBufferUtil.EMPTY_BYTE_BUFFER, 0));
Mutation rm = new Mutation("Keyspace1", ROW.key, cf);
rm.apply();
@@ -269,7 +269,7 @@ public class KeyspaceTest extends SchemaLoader
final ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
final DecoratedKey ROW = Util.dk("row1");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
cf.addColumn(column("col3", "val3", 1L));
cf.addColumn(column("col4", "val4", 1L));
@@ -324,7 +324,7 @@ public class KeyspaceTest extends SchemaLoader
final ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
final DecoratedKey ROW = Util.dk("row5");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
cf.addColumn(expiringColumn("col2", "val2", 1L, 60)); // long enough not to be tombstoned
cf.addColumn(column("col3", "val3", 1L));
@@ -358,7 +358,7 @@ public class KeyspaceTest extends SchemaLoader
final ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
final DecoratedKey ROW = Util.dk("row2");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
cf.addColumn(column("col2", "val2", 1L));
cf.addColumn(column("col3", "val3", 1L));
@@ -369,7 +369,7 @@ public class KeyspaceTest extends SchemaLoader
rm.apply();
cfStore.forceBlockingFlush();
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "valx", 2L));
cf.addColumn(column("col2", "valx", 2L));
cf.addColumn(column("col3", "valx", 2L));
@@ -406,7 +406,7 @@ public class KeyspaceTest extends SchemaLoader
Keyspace keyspace = Keyspace.open("Keyspace1");
ColumnFamilyStore cfStore = keyspace.getColumnFamilyStore("Standard1");
DecoratedKey key = Util.dk("row3");
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
for (int i = 1000; i < 2000; i++)
cf.addColumn(column("col" + i, ("v" + i), 1L));
Mutation rm = new Mutation("Keyspace1", key.key, cf);
@@ -437,7 +437,7 @@ public class KeyspaceTest extends SchemaLoader
DecoratedKey key = Util.dk("row_maxmin");
for (int j = 0; j < 10; j++)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
for (int i = 1000 + (j*100); i < 1000 + ((j+1)*100); i++)
{
cf.addColumn(column("col" + i, ("v" + i), i));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/MultitableTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/MultitableTest.java b/test/unit/org/apache/cassandra/db/MultitableTest.java
index dc8208e..16f9532 100644
--- a/test/unit/org/apache/cassandra/db/MultitableTest.java
+++ b/test/unit/org/apache/cassandra/db/MultitableTest.java
@@ -43,12 +43,12 @@ public class MultitableTest extends SchemaLoader
DecoratedKey dk = Util.dk("keymulti");
ColumnFamily cf;
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
rm = new Mutation("Keyspace1", dk.key, cf);
rm.apply();
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace2", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace2", "Standard1");
cf.addColumn(column("col2", "val2", 1L));
rm = new Mutation("Keyspace2", dk.key, cf);
rm.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/RecoveryManager2Test.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RecoveryManager2Test.java b/test/unit/org/apache/cassandra/db/RecoveryManager2Test.java
index 8e4145c..919d7e9 100644
--- a/test/unit/org/apache/cassandra/db/RecoveryManager2Test.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManager2Test.java
@@ -71,7 +71,7 @@ public class RecoveryManager2Test extends SchemaLoader
private void insertRow(String cfname, String key) throws IOException
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", cfname);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", cfname);
cf.addColumn(column("col1", "val1", 1L));
Mutation rm = new Mutation("Keyspace1", ByteBufferUtil.bytes(key), cf);
rm.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/RecoveryManager3Test.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RecoveryManager3Test.java b/test/unit/org/apache/cassandra/db/RecoveryManager3Test.java
index be11967..6f697fd 100644
--- a/test/unit/org/apache/cassandra/db/RecoveryManager3Test.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManager3Test.java
@@ -48,12 +48,12 @@ public class RecoveryManager3Test extends SchemaLoader
DecoratedKey dk = Util.dk("keymulti");
ColumnFamily cf;
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
rm = new Mutation("Keyspace1", dk.key, cf);
rm.apply();
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace2", "Standard3");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace2", "Standard3");
cf.addColumn(column("col2", "val2", 1L));
rm = new Mutation("Keyspace2", dk.key, cf);
rm.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java b/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
index ce0d2b9..dc4d488 100644
--- a/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
@@ -52,12 +52,12 @@ public class RecoveryManagerTest extends SchemaLoader
DecoratedKey dk = Util.dk("keymulti");
ColumnFamily cf;
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
rm = new Mutation("Keyspace1", dk.key, cf);
rm.apply();
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace2", "Standard3");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace2", "Standard3");
cf.addColumn(column("col2", "val2", 1L));
rm = new Mutation("Keyspace2", dk.key, cf);
rm.apply();
@@ -83,7 +83,7 @@ public class RecoveryManagerTest extends SchemaLoader
for (int i = 0; i < 10; ++i)
{
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Counter1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Counter1");
cf.addColumn(CounterCell.createLocal(cellname("col"), 1L, 1L, Long.MIN_VALUE));
rm = new Mutation("Keyspace1", dk.key, cf);
rm.apply();
@@ -114,7 +114,7 @@ public class RecoveryManagerTest extends SchemaLoader
for (int i = 0; i < 10; ++i)
{
long ts = TimeUnit.MILLISECONDS.toMicros(timeMS + (i * 1000));
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("name-" + i, "value", ts));
Mutation rm = new Mutation("Keyspace1", dk.key, cf);
rm.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java b/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java
index 16ab04a..bd39142 100644
--- a/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java
@@ -46,7 +46,7 @@ public class RecoveryManagerTruncateTest extends SchemaLoader
ColumnFamily cf;
// add a single cell
- cf = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ cf = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf.addColumn(column("col1", "val1", 1L));
rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("keymulti"), cf);
rm.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/RowTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RowTest.java b/test/unit/org/apache/cassandra/db/RowTest.java
index d5d22c0..4a686c5 100644
--- a/test/unit/org/apache/cassandra/db/RowTest.java
+++ b/test/unit/org/apache/cassandra/db/RowTest.java
@@ -37,10 +37,10 @@ public class RowTest extends SchemaLoader
@Test
public void testDiffColumnFamily()
{
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("one", "onev", 0));
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
DeletionInfo delInfo = new DeletionInfo(0, 0);
cf2.delete(delInfo);
@@ -52,10 +52,10 @@ public class RowTest extends SchemaLoader
@Test
public void testResolve()
{
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("one", "A", 0));
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.addColumn(column("one", "B", 1));
cf2.addColumn(column("two", "C", 1));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/ScrubTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/ScrubTest.java b/test/unit/org/apache/cassandra/db/ScrubTest.java
index d8ab9ff..01f3f6b 100644
--- a/test/unit/org/apache/cassandra/db/ScrubTest.java
+++ b/test/unit/org/apache/cassandra/db/ScrubTest.java
@@ -135,7 +135,7 @@ public class ScrubTest extends SchemaLoader
ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF3);
cfs.clearUnsafe();
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(KEYSPACE, CF3);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(KEYSPACE, CF3);
cf.delete(new DeletionInfo(0, 1)); // expired tombstone
Mutation rm = new Mutation(KEYSPACE, ByteBufferUtil.bytes(1), cf);
rm.applyUnsafe();
@@ -249,7 +249,7 @@ public class ScrubTest extends SchemaLoader
{
String key = String.valueOf(i);
// create a row and update the birthdate value, test that the index query fetches the new version
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(KEYSPACE, CF);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(KEYSPACE, CF);
cf.addColumn(column("c1", "1", 1L));
cf.addColumn(column("c2", "2", 1L));
Mutation rm = new Mutation(KEYSPACE, ByteBufferUtil.bytes(key), cf);
@@ -264,7 +264,7 @@ public class ScrubTest extends SchemaLoader
for (int i = 0; i < rowsPerSSTable; i++)
{
String key = String.valueOf(i);
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(KEYSPACE, COUNTER_CF);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(KEYSPACE, COUNTER_CF);
Mutation rm = new Mutation(KEYSPACE, ByteBufferUtil.bytes(key), cf);
rm.addCounter(COUNTER_CF, cellname("Column1"), 100);
CounterMutation cm = new CounterMutation(rm, ConsistencyLevel.ONE);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/db/SerializationsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/SerializationsTest.java b/test/unit/org/apache/cassandra/db/SerializationsTest.java
index 68686cb..f643511 100644
--- a/test/unit/org/apache/cassandra/db/SerializationsTest.java
+++ b/test/unit/org/apache/cassandra/db/SerializationsTest.java
@@ -367,8 +367,8 @@ public class SerializationsTest extends AbstractSerializationsTester
private final long readTs = 1369935512292L;
- private final ColumnFamily StandardCf = TreeMapBackedSortedColumns.factory.create(KS, StandardCF);
- private final ColumnFamily SuperCf = TreeMapBackedSortedColumns.factory.create(KS, SuperCF);
+ private final ColumnFamily StandardCf = ArrayBackedSortedColumns.factory.create(KS, StandardCF);
+ private final ColumnFamily SuperCf = ArrayBackedSortedColumns.factory.create(KS, SuperCF);
private final Row StandardRow = new Row(Util.dk("key0"), StandardCf);
private final Row SuperRow = new Row(Util.dk("key1"), SuperCf);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/io/sstable/SSTableUtils.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/SSTableUtils.java b/test/unit/org/apache/cassandra/io/sstable/SSTableUtils.java
index b25e49c..713a05a 100644
--- a/test/unit/org/apache/cassandra/io/sstable/SSTableUtils.java
+++ b/test/unit/org/apache/cassandra/io/sstable/SSTableUtils.java
@@ -39,7 +39,7 @@ public class SSTableUtils
public static ColumnFamily createCF(long mfda, int ldt, Cell... cols)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(KEYSPACENAME, CFNAME);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(KEYSPACENAME, CFNAME);
cf.delete(new DeletionInfo(mfda, ldt));
for (Cell col : cols)
cf.addColumn(col);
@@ -163,7 +163,7 @@ public class SSTableUtils
Map<String, ColumnFamily> map = new HashMap<String, ColumnFamily>();
for (String key : keys)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(ksname, cfname);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(ksname, cfname);
cf.addColumn(new Cell(Util.cellname(key), ByteBufferUtil.bytes(key), 0));
map.put(key, cf);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/service/RowResolverTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/RowResolverTest.java b/test/unit/org/apache/cassandra/service/RowResolverTest.java
index c2d57c6..286d037 100644
--- a/test/unit/org/apache/cassandra/service/RowResolverTest.java
+++ b/test/unit/org/apache/cassandra/service/RowResolverTest.java
@@ -26,9 +26,9 @@ import java.util.Arrays;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.db.ArrayBackedSortedColumns;
import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.DeletionInfo;
-import org.apache.cassandra.db.TreeMapBackedSortedColumns;
import static org.junit.Assert.*;
import static org.apache.cassandra.Util.column;
@@ -39,10 +39,10 @@ public class RowResolverTest extends SchemaLoader
@Test
public void testResolveSupersetNewer()
{
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("c1", "v1", 0));
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.addColumn(column("c1", "v2", 1));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(cf1, cf2), System.currentTimeMillis());
@@ -54,10 +54,10 @@ public class RowResolverTest extends SchemaLoader
@Test
public void testResolveSupersetDisjoint()
{
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("c1", "v1", 0));
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.addColumn(column("c2", "v2", 1));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(cf1, cf2), System.currentTimeMillis());
@@ -69,7 +69,7 @@ public class RowResolverTest extends SchemaLoader
@Test
public void testResolveSupersetNullOne()
{
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.addColumn(column("c2", "v2", 1));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(null, cf2), System.currentTimeMillis());
@@ -81,7 +81,7 @@ public class RowResolverTest extends SchemaLoader
@Test
public void testResolveSupersetNullTwo()
{
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("c1", "v1", 0));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(cf1, null), System.currentTimeMillis());
@@ -100,10 +100,10 @@ public class RowResolverTest extends SchemaLoader
public void testResolveDeleted()
{
// one CF with columns timestamped before a delete in another cf
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.addColumn(column("one", "A", 0));
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.delete(new DeletionInfo(1L, (int) (System.currentTimeMillis() / 1000)));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(cf1, cf2), System.currentTimeMillis());
@@ -118,19 +118,19 @@ public class RowResolverTest extends SchemaLoader
{
// deletes and columns with interleaved timestamp, with out of order return sequence
- ColumnFamily cf1 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf1 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf1.delete(new DeletionInfo(0L, (int) (System.currentTimeMillis() / 1000)));
// these columns created after the previous deletion
- ColumnFamily cf2 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf2 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf2.addColumn(column("one", "A", 1));
cf2.addColumn(column("two", "A", 1));
//this column created after the next delete
- ColumnFamily cf3 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf3 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf3.addColumn(column("two", "B", 3));
- ColumnFamily cf4 = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cf4 = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
cf4.delete(new DeletionInfo(2L, (int) (System.currentTimeMillis() / 1000)));
ColumnFamily resolved = RowDataResolver.resolveSuperset(Arrays.asList(cf1, cf2, cf3, cf4), System.currentTimeMillis());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/service/pager/AbstractQueryPagerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/pager/AbstractQueryPagerTest.java b/test/unit/org/apache/cassandra/service/pager/AbstractQueryPagerTest.java
index 03a651d..0bb1660 100644
--- a/test/unit/org/apache/cassandra/service/pager/AbstractQueryPagerTest.java
+++ b/test/unit/org/apache/cassandra/service/pager/AbstractQueryPagerTest.java
@@ -120,7 +120,7 @@ public class AbstractQueryPagerTest
private ColumnFamily createCF(int nbCol)
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(createMetadata());
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(createMetadata());
for (int i = 0; i < nbCol; i++)
cf.addColumn(CellNames.simpleDense(bb(i)), bb(i), 0);
return cf;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java b/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
index e0a89c3..f09b6a4 100644
--- a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
+++ b/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
@@ -228,7 +228,7 @@ public class StreamingTransferTest extends SchemaLoader
public void mutate(String key, String col, long timestamp) throws Exception
{
long val = key.hashCode();
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(keyspace.getName(), cfs.name);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(keyspace.getName(), cfs.name);
cf.addColumn(column(col, "v", timestamp));
cf.addColumn(new Cell(cellname("birthdate"), ByteBufferUtil.bytes(val), timestamp));
Mutation rm = new Mutation("Keyspace1", ByteBufferUtil.bytes(key), cf);
@@ -314,8 +314,8 @@ public class StreamingTransferTest extends SchemaLoader
public void mutate(String key, String col, long timestamp) throws Exception
{
Map<String, ColumnFamily> entries = new HashMap<>();
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfs.metadata);
- ColumnFamily cfCleaned = TreeMapBackedSortedColumns.factory.create(cfs.metadata);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(cfs.metadata);
+ ColumnFamily cfCleaned = ArrayBackedSortedColumns.factory.create(cfs.metadata);
CounterContext.ContextState state = CounterContext.ContextState.allocate(0, 1, 3, HeapAllocator.instance);
state.writeLocal(CounterId.fromInt(2), 9L, 3L);
state.writeRemote(CounterId.fromInt(4), 4L, 2L);
@@ -452,7 +452,7 @@ public class StreamingTransferTest extends SchemaLoader
{
public void mutate(String key, String colName, long timestamp) throws Exception
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(keyspace.getName(), cfs.name);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(keyspace.getName(), cfs.name);
cf.addColumn(column(colName, "value", timestamp));
cf.addColumn(new Cell(cellname("birthdate"), ByteBufferUtil.bytes(new Date(timestamp).toString()), timestamp));
Mutation rm = new Mutation("Keyspace1", ByteBufferUtil.bytes(key), cf);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/tools/SSTableExportTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java
index df7a988..b74ba1a 100644
--- a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java
+++ b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java
@@ -56,7 +56,7 @@ public class SSTableExportTest extends SchemaLoader
public SSTableWriter getDummyWriter() throws IOException
{
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
@@ -82,7 +82,7 @@ public class SSTableExportTest extends SchemaLoader
public void testEnumeratekeys() throws IOException
{
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
@@ -117,7 +117,7 @@ public class SSTableExportTest extends SchemaLoader
public void testExportSimpleCf() throws IOException, ParseException
{
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
int nowInSec = (int)(System.currentTimeMillis() / 1000) + 42; //live for 42 seconds
@@ -173,7 +173,7 @@ public class SSTableExportTest extends SchemaLoader
{
ColumnFamilyStore cfs = Keyspace.open("Keyspace1").getColumnFamilyStore("Standard1");
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
@@ -212,7 +212,7 @@ public class SSTableExportTest extends SchemaLoader
public void testExportCounterCf() throws IOException, ParseException
{
File tempSS = tempSSTableFile("Keyspace1", "Counter1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Counter1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Counter1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
@@ -243,7 +243,7 @@ public class SSTableExportTest extends SchemaLoader
public void testEscapingDoubleQuotes() throws IOException, ParseException
{
File tempSS = tempSSTableFile("Keyspace1", "ValuesWithQuotes");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "ValuesWithQuotes");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "ValuesWithQuotes");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
@@ -275,7 +275,7 @@ public class SSTableExportTest extends SchemaLoader
{
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
- ColumnFamily cfamily = TreeMapBackedSortedColumns.factory.create("Keyspace1", "Standard1");
+ ColumnFamily cfamily = ArrayBackedSortedColumns.factory.create("Keyspace1", "Standard1");
SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2, ActiveRepairService.UNREPAIRED_SSTABLE);
// Add rowA
http://git-wip-us.apache.org/repos/asf/cassandra/blob/52045750/test/unit/org/apache/cassandra/utils/EncodedStreamsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/utils/EncodedStreamsTest.java b/test/unit/org/apache/cassandra/utils/EncodedStreamsTest.java
index 7032d73..0c5d49c 100644
--- a/test/unit/org/apache/cassandra/utils/EncodedStreamsTest.java
+++ b/test/unit/org/apache/cassandra/utils/EncodedStreamsTest.java
@@ -26,8 +26,8 @@ import java.io.DataOutputStream;
import java.io.IOException;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.db.ArrayBackedSortedColumns;
import org.apache.cassandra.db.ColumnFamily;
-import org.apache.cassandra.db.TreeMapBackedSortedColumns;
import org.apache.cassandra.db.TypeSizes;
import org.apache.cassandra.net.MessagingService;
import org.apache.cassandra.utils.vint.EncodedDataInputStream;
@@ -97,7 +97,7 @@ public class EncodedStreamsTest extends SchemaLoader
private ColumnFamily createCF()
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(keyspaceName, standardCFName);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(keyspaceName, standardCFName);
cf.addColumn(column("vijay", "try", 1));
cf.addColumn(column("to", "be_nice", 1));
return cf;
@@ -105,7 +105,7 @@ public class EncodedStreamsTest extends SchemaLoader
private ColumnFamily createCounterCF()
{
- ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(keyspaceName, counterCFName);
+ ColumnFamily cf = ArrayBackedSortedColumns.factory.create(keyspaceName, counterCFName);
cf.addColumn(counterColumn("vijay", 1L, 1));
cf.addColumn(counterColumn("wants", 1000000, 1));
return cf;
[2/3] git commit: Optimize (rewrite) ArrayBackedSortedColumns
Posted by al...@apache.org.
Optimize (rewrite) ArrayBackedSortedColumns
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/fb1c6b9c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb1c6b9c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb1c6b9c
Branch: refs/heads/trunk
Commit: fb1c6b9cded56e63dfcc765515edbc94ee9f67a0
Parents: 0e43885
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Feb 11 20:30:57 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Feb 11 20:35:31 2014 +0300
----------------------------------------------------------------------
CHANGES.txt | 3 +-
.../cassandra/db/ArrayBackedSortedColumns.java | 333 +++++++++++++------
.../db/ArrayBackedSortedColumnsTest.java | 69 ++++
3 files changed, 305 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb1c6b9c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7f9f9d2..d8478e9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -25,7 +25,8 @@
* CF id is changed to be non-deterministic. Data dir/key cache are created
uniquely for CF id (CASSANDRA-5202)
* New counters implementation (CASSANDRA-6504)
- * Replace UnsortedColumns usage with ArrayBackedSortedColumns (CASSANDRA-6630)
+ * Replace UnsortedColumns and TreeMapBackedSortedColumns with rewritten
+ ArrayBackedSortedColumns (CASSANDRA-6630, CASSANDRA-6662)
* Add option to use row cache with a given amount of rows (CASSANDRA-5357)
* Avoid repairing already repaired data (CASSANDRA-5351)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb1c6b9c/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 ba082e9..a6153e4 100644
--- a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
@@ -31,16 +31,23 @@ import org.apache.cassandra.db.composites.Composite;
import org.apache.cassandra.db.filter.ColumnSlice;
/**
- * A ColumnFamily backed by an ArrayList.
+ * A ColumnFamily backed by an array.
* This implementation is not synchronized and should only be used when
* thread-safety is not required. This implementation makes sense when the
- * main operations performed are iterating over the map and adding cells
+ * main operations performed are iterating over the cells and adding cells
* (especially if insertion is in sorted order).
*/
public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
{
+ private static final int INITIAL_CAPACITY = 10;
+
+ private static final Cell[] EMPTY_ARRAY = new Cell[0];
+
private final boolean reversed;
- private final ArrayList<Cell> cells;
+
+ private Cell[] cells;
+ private int size;
+ private int sortedSize;
public static final ColumnFamily.Factory<ArrayBackedSortedColumns> factory = new Factory<ArrayBackedSortedColumns>()
{
@@ -54,14 +61,18 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
{
super(metadata);
this.reversed = reversed;
- this.cells = new ArrayList<>();
+ this.cells = new Cell[INITIAL_CAPACITY];
+ this.size = 0;
+ this.sortedSize = 0;
}
- private ArrayBackedSortedColumns(Collection<Cell> cells, CFMetaData metadata, boolean reversed)
+ private ArrayBackedSortedColumns(ArrayBackedSortedColumns original)
{
- super(metadata);
- this.reversed = reversed;
- this.cells = new ArrayList<>(cells);
+ super(original.metadata);
+ this.reversed = original.reversed;
+ this.cells = Arrays.copyOf(original.cells, original.size);
+ this.size = original.size;
+ this.sortedSize = original.sortedSize;
}
public ColumnFamily.Factory getFactory()
@@ -71,7 +82,7 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
public ColumnFamily cloneMe()
{
- return new ArrayBackedSortedColumns(cells, metadata, reversed);
+ return new ArrayBackedSortedColumns(this);
}
public boolean isInsertReversed()
@@ -84,72 +95,191 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
return reversed ? getComparator().reverseComparator() : getComparator();
}
+ private void maybeSortCells()
+ {
+ if (size != sortedSize)
+ sortCells();
+ }
+
+ private void sortCells()
+ {
+ Comparator<Cell> comparator = reversed
+ ? getComparator().columnReverseComparator()
+ : getComparator().columnComparator();
+
+ // Sort the unsorted segment - will still potentially contain duplicate (non-reconciled) cells
+ Arrays.sort(cells, sortedSize, size, comparator);
+
+ // Determine the merge start position for that segment
+ int pos = binarySearch(0, sortedSize, cells[sortedSize].name, internalComparator());
+ if (pos < 0)
+ pos = -pos - 1;
+
+ // Copy [pos, lastSortedCellIndex] cells into a separate array
+ Cell[] leftCopy = pos == sortedSize
+ ? EMPTY_ARRAY
+ : Arrays.copyOfRange(cells, pos, sortedSize);
+
+ // Store the beginning (inclusive) and the end (exclusive) indexes of the right segment
+ int rightStart = sortedSize;
+ int rightEnd = size;
+
+ // 'Trim' the size to what's left without the leftCopy
+ size = sortedSize = pos;
+
+ // Merge the cells from both segments. When adding from the left segment we can rely on it not having any
+ // duplicate cells, and thus omit the comparison with the previously entered cell - we'll never need to reconcile.
+ int l = 0, r = rightStart;
+ while (l < leftCopy.length && r < rightEnd)
+ {
+ int cmp = comparator.compare(leftCopy[l], cells[r]);
+ if (cmp < 0)
+ internalAppend(leftCopy[l++]);
+ else if (cmp == 0)
+ internalAppend(leftCopy[l++].reconcile(cells[r++]));
+ else
+ internalAppendOrReconcile(cells[r++]);
+ }
+ while (l < leftCopy.length)
+ internalAppend(leftCopy[l++]);
+ while (r < rightEnd)
+ internalAppendOrReconcile(cells[r++]);
+
+ // Nullify the remainder of the array (in case we had duplicate cells that got reconciled)
+ for (int i = size; i < rightEnd; i++)
+ cells[i] = null;
+ }
+
public Cell getColumn(CellName name)
{
+ maybeSortCells();
int pos = binarySearch(name);
- return pos >= 0 ? cells.get(pos) : null;
+ return pos >= 0 ? cells[pos] : null;
}
public void addColumn(Cell cell)
{
- if (cells.isEmpty())
+ if (size == 0)
{
- cells.add(cell);
+ internalAdd(cell);
+ sortedSize++;
return;
}
- int c = internalComparator().compare(cells.get(getColumnCount() - 1).name(), cell.name());
+ if (size != sortedSize)
+ {
+ internalAdd(cell);
+ return;
+ }
+ int c = internalComparator().compare(cells[size - 1].name(), cell.name());
if (c < 0)
{
- // Insert as last
- cells.add(cell);
+ // Append to the end
+ internalAdd(cell);
+ sortedSize++;
}
else if (c == 0)
{
- // Resolve against last
- resolveAgainst(getColumnCount() - 1, cell);
+ // Resolve against the last cell
+ reconcileWith(size - 1, cell);
}
else
{
- int pos = binarySearch(cell.name());
- if (pos >= 0)
- resolveAgainst(pos, cell);
- else
- cells.add(-pos - 1, cell);
+ // Append to the end, making cells unsorted from now on
+ internalAdd(cell);
}
}
+ public void addAll(ColumnFamily other)
+ {
+ delete(other.deletionInfo());
+
+ if (other.getColumnCount() == 0)
+ return;
+
+ Iterator<Cell> iterator = reversed ? other.reverseIterator() : other.iterator();
+ while (iterator.hasNext())
+ addColumn(iterator.next());
+ }
+
+ /**
+ * Add a cell to the array, 'resizing' it first if necessary (if it doesn't fit).
+ */
+ private void internalAdd(Cell cell)
+ {
+ // Resize the backing array if we hit the capacity
+ if (cells.length == size)
+ cells = Arrays.copyOf(cells, size * 3 / 2 + 1);
+ cells[size++] = cell;
+ }
+
+ /**
+ * Appends a cell to the array, with the knowledge that array has enough capacity for the new cell, and that
+ * the cell is being added in the sorted order, but may or may not need to be reconciled with the previously
+ * appended one.
+ */
+ private void internalAppendOrReconcile(Cell cell)
+ {
+ if (size > 0 && cells[size - 1].name().equals(cell.name()))
+ reconcileWith(size - 1, cell);
+ else
+ internalAppend(cell);
+ }
+
+ /**
+ * Appends a cell to the array, with the knowledge that array has enough capacity for the new cell, and that
+ * the cell is being added in the sorted order, and the added cell is not a duplicate of a previously inserted one.
+ */
+ private void internalAppend(Cell cell)
+ {
+ cells[size] = cell;
+ size++;
+ sortedSize++;
+ }
+
+ /**
+ * Remove the cell at a given index, shifting the rest of the array to the left if needed.
+ * Please note that we mostly remove from the end, so the shifting should be rare.
+ */
+ private void internalRemove(int index)
+ {
+ int moving = size - index - 1;
+ if (moving > 0)
+ System.arraycopy(cells, index + 1, cells, index, moving);
+ cells[--size] = null;
+ }
+
/**
- * Resolve against element at position i.
+ * Reconcile with a cell at position i.
* Assume that i is a valid position.
*/
- private void resolveAgainst(int i, Cell cell)
+ private void reconcileWith(int i, Cell cell)
{
- cells.set(i, cell.reconcile(cells.get(i)));
+ cells[i] = cell.reconcile(cells[i]);
}
private int binarySearch(CellName name)
{
- return binarySearch(cells, internalComparator(), name, 0);
+ return binarySearch(0, size, name, internalComparator());
}
/**
- * Simple binary search for a given column name.
+ * Simple binary search for a given cell name.
* The return value has the exact same meaning that the one of Collections.binarySearch().
* (We don't use Collections.binarySearch() directly because it would require us to create
* a fake Cell (as well as an Cell comparator) to do the search, which is ugly.
*/
- private static int binarySearch(List<Cell> cells, Comparator<Composite> comparator, Composite name, int start)
+ private int binarySearch(int fromIndex, int toIndex, Composite name, Comparator<Composite> comparator)
{
- int low = start;
- int mid = cells.size();
+ int low = fromIndex;
+ int mid = toIndex;
int high = mid - 1;
int result = -1;
while (low <= high)
{
mid = (low + high) >> 1;
- if ((result = comparator.compare(name, cells.get(mid).name())) > 0)
+ if ((result = comparator.compare(name, cells[mid].name())) > 0)
low = mid + 1;
else if (result == 0)
return mid;
@@ -159,78 +289,36 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
return -mid - (result < 0 ? 1 : 2);
}
- public void addAll(ColumnFamily cm)
- {
- delete(cm.deletionInfo());
- if (cm.getColumnCount() == 0)
- return;
-
- Cell[] copy = cells.toArray(new Cell[getColumnCount()]);
- int idx = 0;
- Iterator<Cell> other = reversed ? cm.reverseIterator(ColumnSlice.ALL_COLUMNS_ARRAY) : cm.iterator();
- Cell otherCell = other.next();
-
- cells.clear();
-
- while (idx < copy.length && otherCell != null)
- {
- int c = internalComparator().compare(copy[idx].name(), otherCell.name());
- if (c < 0)
- {
- cells.add(copy[idx]);
- idx++;
- }
- else if (c > 0)
- {
- cells.add(otherCell);
- otherCell = other.hasNext() ? other.next() : null;
- }
- else // c == 0
- {
- cells.add(copy[idx]);
- resolveAgainst(getColumnCount() - 1, otherCell);
- idx++;
- otherCell = other.hasNext() ? other.next() : null;
- }
- }
-
- while (idx < copy.length)
- cells.add(copy[idx++]);
-
- while (otherCell != null)
- {
- cells.add(otherCell);
- otherCell = other.hasNext() ? other.next() : null;
- }
- }
-
public Collection<Cell> getSortedColumns()
{
- return reversed ? new ReverseSortedCollection() : cells;
+ maybeSortCells();
+ return reversed ? new ReverseSortedCollection() : new ForwardSortedCollection();
}
public Collection<Cell> getReverseSortedColumns()
{
- // If reversed, the element are sorted reversely, so we could expect
- // to return *this*, but *this* redefine the iterator to be in sorted
- // order, so we need a collection that uses the super constructor
+ maybeSortCells();
return reversed ? new ForwardSortedCollection() : new ReverseSortedCollection();
}
public int getColumnCount()
{
- return cells.size();
+ maybeSortCells();
+ return size;
}
public void clear()
{
setDeletionInfo(DeletionInfo.live());
- cells.clear();
+ for (int i = 0; i < size; i++)
+ cells[i] = null;
+ size = sortedSize = 0;
}
public Iterable<CellName> getColumnNames()
{
- return Iterables.transform(cells, new Function<Cell, CellName>()
+ maybeSortCells();
+ return Iterables.transform(new ForwardSortedCollection(), new Function<Cell, CellName>()
{
public CellName apply(Cell cell)
{
@@ -241,17 +329,19 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
public Iterator<Cell> iterator(ColumnSlice[] slices)
{
- return new SlicesIterator(cells, getComparator(), slices, reversed);
+ maybeSortCells();
+ return new SlicesIterator(Arrays.asList(cells).subList(0, size), getComparator(), slices, reversed);
}
public Iterator<Cell> reverseIterator(ColumnSlice[] slices)
{
- return new SlicesIterator(cells, getComparator(), slices, !reversed);
+ maybeSortCells();
+ return new SlicesIterator(Arrays.asList(cells).subList(0, size), getComparator(), slices, !reversed);
}
private static class SlicesIterator extends AbstractIterator<Cell>
{
- private final List<Cell> list;
+ private final List<Cell> cells;
private final ColumnSlice[] slices;
private final Comparator<Composite> comparator;
@@ -259,9 +349,9 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
private int previousSliceEnd = 0;
private Iterator<Cell> currentSlice;
- public SlicesIterator(List<Cell> list, CellNameType comparator, ColumnSlice[] slices, boolean reversed)
+ public SlicesIterator(List<Cell> cells, CellNameType comparator, ColumnSlice[] slices, boolean reversed)
{
- this.list = reversed ? Lists.reverse(list) : list;
+ this.cells = reversed ? Lists.reverse(cells) : cells;
this.slices = slices;
this.comparator = reversed ? comparator.reverseComparator() : comparator;
}
@@ -275,21 +365,21 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
ColumnSlice slice = slices[idx++];
// The first idx to include
- int startIdx = slice.start.isEmpty() ? 0 : binarySearch(list, comparator, slice.start, previousSliceEnd);
+ int startIdx = slice.start.isEmpty() ? 0 : binarySearch(previousSliceEnd, slice.start);
if (startIdx < 0)
startIdx = -startIdx - 1;
// The first idx to exclude
- int finishIdx = slice.finish.isEmpty() ? list.size() - 1 : binarySearch(list, comparator, slice.finish, previousSliceEnd);
+ int finishIdx = slice.finish.isEmpty() ? cells.size() - 1 : binarySearch(previousSliceEnd, slice.finish);
if (finishIdx >= 0)
finishIdx++;
else
finishIdx = -finishIdx - 1;
- if (startIdx == 0 && finishIdx == list.size())
- currentSlice = list.iterator();
+ if (startIdx == 0 && finishIdx == cells.size())
+ currentSlice = cells.iterator();
else
- currentSlice = list.subList(startIdx, finishIdx).iterator();
+ currentSlice = cells.subList(startIdx, finishIdx).iterator();
previousSliceEnd = finishIdx > 0 ? finishIdx - 1 : 0;
}
@@ -300,20 +390,40 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
currentSlice = null;
return computeNext();
}
+
+ // Copy of ABSC.binarySearch() that takes lists
+ private int binarySearch(int fromIndex, Composite name)
+ {
+ int low = fromIndex;
+ int mid = cells.size();
+ int high = mid - 1;
+ int result = -1;
+ while (low <= high)
+ {
+ 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);
+ }
}
private class ReverseSortedCollection extends AbstractCollection<Cell>
{
public int size()
{
- return cells.size();
+ return size;
}
public Iterator<Cell> iterator()
{
return new Iterator<Cell>()
{
- int idx = size() - 1;
+ int idx = size - 1;
boolean shouldCallNext = true;
public boolean hasNext()
@@ -324,15 +434,16 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
public Cell next()
{
shouldCallNext = false;
- return cells.get(idx--);
+ return cells[idx--];
}
public void remove()
{
if (shouldCallNext)
throw new IllegalStateException();
- cells.remove(idx + 1);
+ internalRemove(idx + 1);
shouldCallNext = true;
+ sortedSize--;
}
};
}
@@ -342,12 +453,36 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
{
public int size()
{
- return cells.size();
+ return size;
}
public Iterator<Cell> iterator()
{
- return cells.iterator();
+ return new Iterator<Cell>()
+ {
+ int idx = 0;
+ boolean shouldCallNext = true;
+
+ public boolean hasNext()
+ {
+ return idx < size;
+ }
+
+ public Cell next()
+ {
+ shouldCallNext = false;
+ return cells[idx++];
+ }
+
+ public void remove()
+ {
+ if (shouldCallNext)
+ throw new IllegalStateException();
+ internalRemove(--idx);
+ shouldCallNext = true;
+ sortedSize--;
+ }
+ };
}
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb1c6b9c/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 d98dab6..a1c98f3 100644
--- a/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java
+++ b/test/unit/org/apache/cassandra/db/ArrayBackedSortedColumnsTest.java
@@ -63,6 +63,75 @@ public class ArrayBackedSortedColumnsTest extends SchemaLoader
}
@Test
+ public void testOutOfOrder()
+ {
+ testAddOutOfOrder(false);
+ testAddOutOfOrder(false);
+ }
+
+ private void testAddOutOfOrder(boolean reversed)
+ {
+ CellNameType type = new SimpleDenseCellNameType(Int32Type.instance);
+ ColumnFamily cells = ArrayBackedSortedColumns.factory.create(metadata(), reversed);
+
+ int[] values = new int[]{ 1, 2, 1, 3, 4, 4, 5, 5, 1, 2, 6, 6, 6, 1, 2, 3 };
+ for (int i = 0; i < values.length; ++i)
+ cells.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])));
+
+ assertEquals(6, cells.getColumnCount());
+
+ Iterator<Cell> iter = cells.iterator();
+ assertEquals(1, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(2, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(3, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(4, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(5, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(6, iter.next().name().toByteBuffer().getInt(0));
+
+ // Add more values
+ values = new int[]{ 11, 15, 12, 12, 12, 16, 10, 8, 8, 7, 4, 4, 5 };
+ for (int i = 0; i < values.length; ++i)
+ cells.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])));
+
+ assertEquals(13, cells.getColumnCount());
+
+ iter = cells.reverseIterator();
+ assertEquals(16, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(15, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(12, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(11, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(10, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(8, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(7, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(6, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(5, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(4, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(3, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(2, iter.next().name().toByteBuffer().getInt(0));
+ assertEquals(1, iter.next().name().toByteBuffer().getInt(0));
+ }
+
+ @Test
+ public void testGetColumn()
+ {
+ testGetColumnInternal(true);
+ testGetColumnInternal(false);
+ }
+
+ private void testGetColumnInternal(boolean reversed)
+ {
+ CellNameType type = new SimpleDenseCellNameType(Int32Type.instance);
+ ColumnFamily cells = ArrayBackedSortedColumns.factory.create(metadata(), reversed);
+
+ int[] values = new int[]{ -1, 20, 44, 55, 27, 27, 17, 1, 9, 89, 33, 44, 0, 9 };
+ for (int i = 0; i < values.length; ++i)
+ cells.addColumn(new Cell(type.makeCellName(values[reversed ? values.length - 1 - i : i])));
+
+ for (int i : values)
+ assertEquals(i, cells.getColumn(type.makeCellName(i)).name().toByteBuffer().getInt(0));
+ }
+
+ @Test
public void testAddAll()
{
testAddAllInternal(false);
[3/3] git commit: ColumnFamily-related cleanups
Posted by al...@apache.org.
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 <al...@yeschenko.com>
Authored: Sun Feb 9 06:22:47 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
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