You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/04/02 22:14:50 UTC
svn commit: r761413 -
/incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java
Author: jbellis
Date: Thu Apr 2 20:14:49 2009
New Revision: 761413
URL: http://svn.apache.org/viewvc?rev=761413&view=rev
Log:
r/m unused constructors. Use concurrent containers because while get is iterating over columns (EBM is used as the column container by CF) the memtable can continue to modify SuperColumns.
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java?rev=761413&r1=761412&r2=761413&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/EfficientBidiMap.java Thu Apr 2 20:14:49 2009
@@ -19,10 +19,14 @@
package org.apache.cassandra.db;
import java.io.Serializable;
-import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.Comparator;
+import java.util.TreeSet;
import org.apache.cassandra.db.ColumnComparatorFactory.ComparatorType;
-import org.apache.cassandra.service.StorageService;
/**
@@ -31,19 +35,13 @@
class EfficientBidiMap implements Serializable
{
- private Map<String, IColumn> map_ = new HashMap<String, IColumn>();
+ private Map<String, IColumn> map_;
private SortedSet<IColumn> sortedSet_;
private Comparator<IColumn> columnComparator_;
- EfficientBidiMap()
- {
- this(ColumnComparatorFactory.getComparator(ComparatorType.TIMESTAMP));
- }
-
EfficientBidiMap(Comparator<IColumn> columnComparator)
{
- columnComparator_ = columnComparator;
- sortedSet_ = new TreeSet<IColumn>(columnComparator);
+ this(new ConcurrentHashMap<String, IColumn>(), new ConcurrentSkipListSet<IColumn>(columnComparator), columnComparator);
}
EfficientBidiMap(Map<String, IColumn> map, SortedSet<IColumn> set, Comparator<IColumn> comparator)
@@ -53,18 +51,6 @@
columnComparator_ = comparator;
}
- EfficientBidiMap(Object[] objects, Comparator<IColumn> columnComparator)
- {
- columnComparator_ = columnComparator;
- sortedSet_ = new TreeSet<IColumn>(columnComparator);
- for ( Object object : objects )
- {
- IColumn column = (IColumn)object;
- sortedSet_.add(column);
- map_.put(column.name(), column);
- }
- }
-
public Comparator<IColumn> getComparator()
{
return columnComparator_;
@@ -116,8 +102,8 @@
EfficientBidiMap cloneMe()
{
- Map<String, IColumn> map = new HashMap<String, IColumn>(map_);
- SortedSet<IColumn> set = new TreeSet<IColumn>(sortedSet_);
+ Map<String, IColumn> map = new ConcurrentHashMap<String, IColumn>(map_);
+ SortedSet<IColumn> set = new ConcurrentSkipListSet<IColumn>(sortedSet_);
return new EfficientBidiMap(map, set, columnComparator_);
}
}