Author: jbellis
Date: Fri Apr 17 01:48:50 2009
New Revision: 765830
URL: http://svn.apache.org/viewvc?rev=765830&view=rev
Log:
use isSuper instead of DatabaseDescriptor.getColumnType.
patch by jbellis; reviewed by Sandeep Tata for #85
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamily.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/CountFilter.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/DBManager.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/IdentityFilter.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/Memtable.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/NamesFilter.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/RangeFilter.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/Row.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/TimeFilter.java
incubator/cassandra/trunk/src/org/apache/cassandra/net/http/ColumnFamilyFormatter.java
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamily.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamily.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamily.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamily.java Fri
Apr 17 01:48:50 2009
@@ -49,6 +49,7 @@
private static Logger logger_ = Logger.getLogger( ColumnFamily.class );
private static Map<String, String> columnTypes_ = new HashMap<String,
String>();
private static Map<String, String> indexTypes_ = new HashMap<String,
String>();
+ private String type_;
static
{
@@ -122,15 +123,10 @@
return columnComparator_;
}
- public ColumnFamily(String cfName)
- {
- name_ = cfName;
- createColumnFactoryAndColumnSerializer();
- }
-
public ColumnFamily(String cfName, String columnType)
{
- this(cfName);
+ name_ = cfName;
+ type_ = columnType;
createColumnFactoryAndColumnSerializer(columnType);
}
@@ -162,7 +158,7 @@
ColumnFamily cloneMe()
{
- ColumnFamily cf = new ColumnFamily(name_);
+ ColumnFamily cf = new ColumnFamily(name_, type_);
cf.markedForDeleteAt = markedForDeleteAt;
cf.columns_ = columns_.cloneMe();
return cf;
@@ -220,7 +216,7 @@
public boolean isSuper()
{
- return DatabaseDescriptor.getColumnType(name_).equals("Super");
+ return type_.equals("Super");
}
public void addColumn(String name, byte[] value)
@@ -329,7 +325,7 @@
*/
ColumnFamily diff(ColumnFamily columnFamily)
{
- ColumnFamily cfDiff = new ColumnFamily(columnFamily.name());
+ ColumnFamily cfDiff = new ColumnFamily(columnFamily.name(),
columnFamily.type_);
Map<String, IColumn> columns = columnFamily.getColumns();
Set<String> cNames = columns.keySet();
@@ -421,6 +417,11 @@
return markedForDeleteAt;
}
+ public String type()
+ {
+ return type_;
+ }
+
public static class ColumnFamilySerializer implements
ICompactSerializer2<ColumnFamily>
{
/*
@@ -473,7 +474,7 @@
private ColumnFamily defreezeColumnFamily(DataInputStream dis) throws
IOException
{
String name = dis.readUTF();
- ColumnFamily cf = new ColumnFamily(name);
+ ColumnFamily cf = new ColumnFamily(name,
DatabaseDescriptor.getColumnFamilyType(name));
cf.delete(dis.readLong());
return cf;
}
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
(original)
+++
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
Fri Apr 17 01:48:50 2009
@@ -70,8 +70,9 @@
private static int compactionMemoryThreshold_ = 1 << 30;
private static Logger logger_ = Logger.getLogger(ColumnFamilyStore.class);
- private String table_;
- public String columnFamily_;
+ private final String table_;
+ public final String columnFamily_;
+ private final boolean isSuper_;
private volatile Integer memtableSwitchCount = 0;
@@ -91,10 +92,11 @@
/* Flag indicates if a compaction is in process */
private AtomicBoolean isCompacting_ = new AtomicBoolean(false);
- ColumnFamilyStore(String table, String columnFamily, int indexValue)
throws IOException
+ ColumnFamilyStore(String table, String columnFamily, boolean isSuper, int
indexValue) throws IOException
{
table_ = table;
columnFamily_ = columnFamily;
+ isSuper_ = isSuper;
fileIndexGenerator_.set(indexValue);
memtable_ = new AtomicReference<Memtable>(new Memtable(table_,
columnFamily_));
binaryMemtable_ = new AtomicReference<BinaryMemtable>(new
BinaryMemtable(table_, columnFamily_));
@@ -130,7 +132,7 @@
Collections.sort(indices);
int value = (indices.size() > 0) ? (indices.get(indices.size() - 1)) :
0;
- ColumnFamilyStore cfs = new ColumnFamilyStore(table, columnFamily,
value);
+ ColumnFamilyStore cfs = new ColumnFamilyStore(table, columnFamily,
"Super".equals(DatabaseDescriptor.getColumnType(columnFamily)), value);
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
try
@@ -579,8 +581,8 @@
return null;
// start from nothing so that we don't include potential deleted
columns from the first instance
- String cfname = columnFamilies.get(0).name();
- ColumnFamily cf = new ColumnFamily(cfname);
+ ColumnFamily cf0 = columnFamilies.get(0);
+ ColumnFamily cf = new ColumnFamily(cf0.name(), cf0.type());
// merge
for (ColumnFamily cf2 : columnFamilies)
@@ -1383,7 +1385,7 @@
public boolean isSuper()
{
- return
DatabaseDescriptor.getColumnType(getColumnFamilyName()).equals("Super");
+ return isSuper_;
}
public void flushMemtableOnRecovery() throws IOException
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/CountFilter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/CountFilter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/CountFilter.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/CountFilter.java Fri
Apr 17 01:48:50 2009
@@ -49,8 +49,7 @@
if ( columnFamily == null )
return columnFamily;
- String cfName = columnFamily.name();
- ColumnFamily filteredCf = new ColumnFamily(cfName);
+ ColumnFamily filteredCf = new ColumnFamily(columnFamily.name(),
columnFamily.type());
if( countLimit_ <= 0 )
{
isDone_ = true;
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/DBManager.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/DBManager.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/DBManager.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/DBManager.java Fri
Apr 17 01:48:50 2009
@@ -130,7 +130,7 @@
String key = FBUtilities.getHostName();
row = new Row(key);
- ColumnFamily cf = new ColumnFamily(SystemTable.cfName_);
+ ColumnFamily cf = new ColumnFamily(SystemTable.cfName_,
"Standard");
cf.addColumn(new Column(SystemTable.token_, token.toByteArray()));
cf.addColumn(new Column(SystemTable.generation_,
BasicUtilities.intToByteArray(generation)));
row.addColumnFamily(cf);
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/IdentityFilter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/IdentityFilter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/IdentityFilter.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/IdentityFilter.java
Fri Apr 17 01:48:50 2009
@@ -25,13 +25,13 @@
if( columnFamily == null )
return columnFamily;
String cfName = columnFamily.name();
- if ( values.length == 2 &&
!DatabaseDescriptor.getColumnType(cfName).equals("Super") )
+ if (values.length == 2 && !columnFamily.isSuper())
{
Collection<IColumn> columns =
columnFamily.getAllColumns();
if(columns.size() >= 1)
isDone_ = true;
}
- if ( values.length == 3 &&
DatabaseDescriptor.getColumnType(cfName).equals("Super"))
+ if (values.length == 3 && columnFamily.isSuper())
{
Collection<IColumn> columns = columnFamily.getAllColumns();
for(IColumn column : columns)
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/Memtable.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/Memtable.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/Memtable.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/Memtable.java Fri Apr
17 01:48:50 2009
@@ -314,7 +314,7 @@
IColumn column = cFamily.getColumn(values[1]); // super or
normal column
if (column != null )
{
- columnFamily = new ColumnFamily(cfName_);
+ columnFamily = new ColumnFamily(cfName_, cFamily.type());
columnFamily.addColumn(column);
}
}
@@ -327,7 +327,7 @@
IColumn subColumn = superColumn.getSubColumn(values[2]);
if (subColumn != null)
{
- columnFamily = new ColumnFamily(cfName_);
+ columnFamily = new ColumnFamily(cfName_,
cFamily.type());
columnFamily.addColumn(values[1] + ":" + values[2],
subColumn.value(), subColumn.timestamp(), subColumn.isMarkedForDelete());
}
}
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/NamesFilter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/NamesFilter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/NamesFilter.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/NamesFilter.java Fri
Apr 17 01:48:50 2009
@@ -46,8 +46,7 @@
return columnFamily;
}
String[] values = RowMutation.getColumnAndColumnFamily(cf);
- String cfName = columnFamily.name();
- ColumnFamily filteredCf = new ColumnFamily(cfName);
+ ColumnFamily filteredCf = new ColumnFamily(columnFamily.name(),
columnFamily.type());
if( values.length == 1 )
{
Collection<IColumn> columns =
columnFamily.getAllColumns();
@@ -64,7 +63,7 @@
}
}
}
- else if ( values.length == 2 &&
DatabaseDescriptor.getColumnType(cfName).equals("Super"))
+ else if (values.length == 2 && columnFamily.isSuper())
{
Collection<IColumn> columns = columnFamily.getAllColumns();
for(IColumn column : columns)
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/RangeFilter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/RangeFilter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/RangeFilter.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/RangeFilter.java Fri
Apr 17 01:48:50 2009
@@ -63,7 +63,7 @@
return null;
}
- ColumnFamily filteredColumnFamily = new ColumnFamily(cfName);
+ ColumnFamily filteredColumnFamily = new ColumnFamily(cfName,
cf.type());
Collection<IColumn> columns = cf.getAllColumns();
for (IColumn c : columns)
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/Row.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/Row.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/Row.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/Row.java Fri Apr 17
01:48:50 2009
@@ -120,7 +120,7 @@
ColumnFamily cf = columnFamilies_.get(cfName);
if (cf == null)
{
- cf = new ColumnFamily(cfName);
+ cf = new ColumnFamily(cfName, cf.type());
columnFamilies_.put(cfName, cf);
}
cf.repair(columnFamilies.get(cfName));
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java Fri
Apr 17 01:48:50 2009
@@ -185,19 +185,19 @@
ColumnFamily columnFamily = modifications_.get(cfName);
if (columnFamily == null)
- columnFamily = new ColumnFamily(cfName);
+ columnFamily = new ColumnFamily(cfName,
DatabaseDescriptor.getColumnType(cfName));
if (values.length == 2)
{
- if
(DatabaseDescriptor.getColumnFamilyType(cfName).equals("Standard"))
- {
- columnFamily.addColumn(values[1], ArrayUtils.EMPTY_BYTE_ARRAY,
timestamp, true);
- }
- else
+ if (columnFamily.isSuper())
{
SuperColumn sc = new SuperColumn(values[1]);
sc.markForDeleteAt(timestamp);
columnFamily.addColumn(sc);
}
+ else
+ {
+ columnFamily.addColumn(values[1], ArrayUtils.EMPTY_BYTE_ARRAY,
timestamp, true);
+ }
}
else if (values.length == 3)
{
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/TimeFilter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/TimeFilter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/TimeFilter.java
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/TimeFilter.java Fri
Apr 17 01:48:50 2009
@@ -51,9 +51,8 @@
return columnFamily;
String[] values = RowMutation.getColumnAndColumnFamily(cf);
- String cfName = columnFamily.name();
- ColumnFamily filteredCf = new ColumnFamily(cfName);
- if( values.length == 1 &&
!DatabaseDescriptor.getColumnType(cfName).equals("Super"))
+ ColumnFamily filteredCf = new ColumnFamily(columnFamily.name(),
columnFamily.type());
+ if (values.length == 1 && !columnFamily.isSuper())
{
Collection<IColumn> columns = columnFamily.getAllColumns();
int i =0;
@@ -74,7 +73,7 @@
isDone_ = true;
}
}
- else if ( values.length == 2 &&
DatabaseDescriptor.getColumnType(cfName).equals("Super") )
+ else if (values.length == 2 && columnFamily.isSuper())
{
/*
* TODO : For super columns we need to re-visit this issue.
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/net/http/ColumnFamilyFormatter.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/net/http/ColumnFamilyFormatter.java?rev=765830&r1=765829&r2=765830&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/org/apache/cassandra/net/http/ColumnFamilyFormatter.java
(original)
+++
incubator/cassandra/trunk/src/org/apache/cassandra/net/http/ColumnFamilyFormatter.java
Fri Apr 17 01:48:50 2009
@@ -35,9 +35,8 @@
// first print the column family specific data
sb.append("ColumnFamily = " + cf.name() + "<br>");
- String columnFamilyType = DatabaseDescriptor.getColumnType(cf.name());
Collection<IColumn> cols = cf.getAllColumns();
- if("Super".equals(columnFamilyType))
+ if (cf.isSuper())
{
printSuperColumns(sb, cols);
}