cleanup. patch by jbellis

git-svn-id: https://svn.apache.org/repos/asf/cassandra/trunk@1003831 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Ellis 2010-10-02 16:42:50 +00:00
parent 1e47c83d25
commit e239146914
4 changed files with 58 additions and 42 deletions

View File

@ -22,27 +22,22 @@ import java.nio.ByteBuffer;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import com.google.common.collect.*; import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import org.apache.avro.util.Utf8;
import org.apache.cassandra.config.avro.CfDef;
import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.avro.util.Utf8;
import org.apache.cassandra.config.avro.ColumnDef; import org.apache.cassandra.config.avro.ColumnDef;
import org.apache.cassandra.db.marshal.TimeUUIDType; import org.apache.cassandra.db.*;
import org.apache.cassandra.db.marshal.UTF8Type;
import org.apache.cassandra.io.SerDeUtils;
import org.apache.cassandra.db.ColumnFamilyType;
import org.apache.cassandra.db.ClockType;
import org.apache.cassandra.db.clock.AbstractReconciler; import org.apache.cassandra.db.clock.AbstractReconciler;
import org.apache.cassandra.db.clock.TimestampReconciler; import org.apache.cassandra.db.clock.TimestampReconciler;
import org.apache.cassandra.db.HintedHandOffManager;
import org.apache.cassandra.db.SystemTable;
import org.apache.cassandra.db.Table;
import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.BytesType; import org.apache.cassandra.db.marshal.BytesType;
import org.apache.cassandra.db.marshal.TimeUUIDType;
import org.apache.cassandra.db.marshal.UTF8Type;
import org.apache.cassandra.db.migration.Migration; import org.apache.cassandra.db.migration.Migration;
import org.apache.cassandra.io.SerDeUtils;
import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair; import org.apache.cassandra.utils.Pair;
@ -91,18 +86,10 @@ public final class CFMetaData
Collections.<byte[], ColumnDefinition>emptyMap()); Collections.<byte[], ColumnDefinition>emptyMap());
} }
/**
* @return An immutable mapping of (ksname,cfname) to id.
*/
public static final Map<Pair<String, String>, Integer> getCfToIdMap()
{
return Collections.unmodifiableMap(cfIdMap);
}
/** /**
* @return The (ksname,cfname) pair for the given id, or null if it has been dropped. * @return The (ksname,cfname) pair for the given id, or null if it has been dropped.
*/ */
public static final Pair<String,String> getCF(Integer cfId) public static Pair<String,String> getCF(Integer cfId)
{ {
return cfIdMap.inverse().get(cfId); return cfIdMap.inverse().get(cfId);
} }
@ -110,13 +97,13 @@ public final class CFMetaData
/** /**
* @return The id for the given (ksname,cfname) pair, or null if it has been dropped. * @return The id for the given (ksname,cfname) pair, or null if it has been dropped.
*/ */
public static final Integer getId(String table, String cfName) public static Integer getId(String table, String cfName)
{ {
return cfIdMap.get(new Pair<String, String>(table, cfName)); return cfIdMap.get(new Pair<String, String>(table, cfName));
} }
// this gets called after initialization to make sure that id generation happens properly. // this gets called after initialization to make sure that id generation happens properly.
public static final void fixMaxId() public static void fixMaxId()
{ {
// never set it to less than 1000. this ensures that we have enough system CFids for future use. // never set it to less than 1000. this ensures that we have enough system CFids for future use.
idGen.set(cfIdMap.size() == 0 ? MIN_CF_ID : Math.max(Collections.max(cfIdMap.values()) + 1, MIN_CF_ID)); idGen.set(cfIdMap.size() == 0 ? MIN_CF_ID : Math.max(Collections.max(cfIdMap.values()) + 1, MIN_CF_ID));
@ -310,16 +297,6 @@ public final class CFMetaData
cfIdMap.remove(new Pair<String, String>(cfm.tableName, cfm.cfName)); cfIdMap.remove(new Pair<String, String>(cfm.tableName, cfm.cfName));
} }
// a quick and dirty pretty printer for describing the column family...
//TODO: Make it prettier, use it in the CLI
public String pretty()
{
return tableName + "." + cfName + "\n"
+ "Column Family Type: " + cfType + "\n"
+ "Column Family Clock Type: " + clockType + "\n"
+ "Columns Sorted By: " + comparator + "\n";
}
public org.apache.cassandra.config.avro.CfDef deflate() public org.apache.cassandra.config.avro.CfDef deflate()
{ {
org.apache.cassandra.config.avro.CfDef cf = new org.apache.cassandra.config.avro.CfDef(); org.apache.cassandra.config.avro.CfDef cf = new org.apache.cassandra.config.avro.CfDef();
@ -465,7 +442,7 @@ public final class CFMetaData
public CFMetaData apply(org.apache.cassandra.avro.CfDef cf_def) throws ConfigurationException public CFMetaData apply(org.apache.cassandra.avro.CfDef cf_def) throws ConfigurationException
{ {
// validate. // validate.
if (cf_def.id != cfId) if (!cf_def.id.equals(cfId))
throw new ConfigurationException(String.format("ids do not match. %d, %d", cf_def.id, cfId)); throw new ConfigurationException(String.format("ids do not match. %d, %d", cf_def.id, cfId));
if (!cf_def.keyspace.toString().equals(tableName)) if (!cf_def.keyspace.toString().equals(tableName))
throw new ConfigurationException(String.format("keyspaces do not match. %s, %s", cf_def.keyspace, tableName)); throw new ConfigurationException(String.format("keyspaces do not match. %s, %s", cf_def.keyspace, tableName));
@ -499,7 +476,7 @@ public final class CFMetaData
cf_def.key_cache_size, cf_def.key_cache_size,
cf_def.read_repair_chance, cf_def.read_repair_chance,
cf_def.gc_grace_seconds, cf_def.gc_grace_seconds,
DatabaseDescriptor.getComparator(cf_def.default_validation_class == null ? (String)null : cf_def.default_validation_class.toString()), DatabaseDescriptor.getComparator(cf_def.default_validation_class == null ? null : cf_def.default_validation_class.toString()),
cf_def.min_compaction_threshold, cf_def.min_compaction_threshold,
cf_def.max_compaction_threshold, cf_def.max_compaction_threshold,
cfId, cfId,
@ -682,4 +659,27 @@ public final class CFMetaData
//Defaults are valid. //Defaults are valid.
} }
} }
@Override
public String toString()
{
return "CFMetaData{" +
"gcGraceSeconds=" + gcGraceSeconds +
", comparator=" + comparator +
", subcolumnComparator=" + subcolumnComparator +
", comment='" + comment + '\'' +
", rowCacheSize=" + rowCacheSize +
", keyCacheSize=" + keyCacheSize +
", readRepairChance=" + readRepairChance +
", preloadRowCache=" + preloadRowCache +
", cfId=" + cfId +
", tableName='" + tableName + '\'' +
", cfName='" + cfName + '\'' +
", cfType=" + cfType +
", defaultValidator=" + defaultValidator +
", minCompactionThreshold=" + minCompactionThreshold +
", maxCompactionThreshold=" + maxCompactionThreshold +
", column_metadata=" + FBUtilities.toString(column_metadata) +
'}';
}
} }

View File

@ -143,4 +143,15 @@ public class ColumnDefinition {
return Collections.unmodifiableMap(cds); return Collections.unmodifiableMap(cds);
} }
@Override
public String toString()
{
return "ColumnDefinition{" +
"name=" + FBUtilities.bytesToHex(name) +
", validator=" + validator +
", index_type=" + index_type +
", index_name='" + index_name + '\'' +
'}';
}
} }

View File

@ -86,15 +86,8 @@ public class CassandraServer implements Cassandra.Iface
*/ */
private final IRequestScheduler requestScheduler; private final IRequestScheduler requestScheduler;
/*
* Handle to the storage service to interact with the other machines in the
* cluster.
*/
private final StorageService storageService;
public CassandraServer() public CassandraServer()
{ {
storageService = StorageService.instance;
requestScheduler = DatabaseDescriptor.getRequestScheduler(); requestScheduler = DatabaseDescriptor.getRequestScheduler();
} }

View File

@ -684,4 +684,16 @@ public class FBUtilities
set.add(column); set.add(column);
return set; return set;
} }
public static String toString(Map<?,?> map)
{
// wtf, why isn't something like this in guava or commons collections?
StringBuilder sb = new StringBuilder("{");
for (Map.Entry<?,?> entry : map.entrySet())
{
sb.append(entry.getKey()).append(": ").append(entry.getValue()).append(", ");
}
sb.append("}");
return sb.toString();
}
} }