You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2011/08/23 01:16:06 UTC

svn commit: r1160494 [2/3] - in /cassandra/trunk: src/java/org/apache/cassandra/cache/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/cql/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/commitlog/ src/java/org/a...

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameColumnFamily.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameColumnFamily.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameColumnFamily.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameColumnFamily.java Mon Aug 22 23:16:04 2011
@@ -4,10 +4,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.KSMetaData;
+import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
@@ -47,12 +44,12 @@ public class RenameColumnFamily extends 
     // be called during deserialization of this migration.
     public RenameColumnFamily(String tableName, String oldName, String newName) throws ConfigurationException, IOException
     {
-        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), DatabaseDescriptor.getDefsVersion());
+        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), Schema.instance.getVersion());
         this.tableName = tableName;
         this.oldName = oldName;
         this.newName = newName;
         
-        KSMetaData ksm = DatabaseDescriptor.getTableDefinition(tableName);
+        KSMetaData ksm = schema.getTableDefinition(tableName);
         if (ksm == null)
             throw new ConfigurationException("No such keyspace: " + tableName);
         if (!ksm.cfMetaData().containsKey(oldName))
@@ -66,7 +63,7 @@ public class RenameColumnFamily extends 
         
         // clone the ksm, replacing cfm with the new one.
         KSMetaData newKsm = makeNewKeyspaceDefinition(ksm);
-        rm = Migration.makeDefinitionMutation(newKsm, null, newVersion);
+        rm = makeDefinitionMutation(newKsm, null, newVersion);
     }
     
     private KSMetaData makeNewKeyspaceDefinition(KSMetaData ksm)
@@ -86,12 +83,12 @@ public class RenameColumnFamily extends 
         // attempting row mutations on oldcfName right now would be really bad.
         
         // reset defs.
-        KSMetaData oldKsm = DatabaseDescriptor.getTableDefinition(tableName);
-        CFMetaData.purge(oldKsm.cfMetaData().get(oldName));
-        KSMetaData ksm = makeNewKeyspaceDefinition(DatabaseDescriptor.getTableDefinition(tableName));
+        KSMetaData oldKsm = schema.getTableDefinition(tableName);
+        schema.purge(oldKsm.cfMetaData().get(oldName));
+        KSMetaData ksm = makeNewKeyspaceDefinition(schema.getTableDefinition(tableName));
         try 
         {
-            CFMetaData.map(ksm.cfMetaData().get(newName));
+            schema.load(ksm.cfMetaData().get(newName));
         }
         catch (ConfigurationException ex)
         {
@@ -99,11 +96,11 @@ public class RenameColumnFamily extends 
             // been checked in the constructor and shouldn't happen.
             throw new RuntimeException(ex);
         }
-        DatabaseDescriptor.setTableDefinition(ksm, newVersion);
+        schema.setTableDefinition(ksm, newVersion);
         
         if (!StorageService.instance.isClientMode())
         {
-            Table.open(ksm.name).renameCf(cfId, newName);
+            Table.open(ksm.name, schema).renameCf(cfId, newName);
         }
     }
     

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameKeyspace.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameKeyspace.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameKeyspace.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/migration/RenameKeyspace.java Mon Aug 22 23:16:04 2011
@@ -23,12 +23,9 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.cassandra.config.*;
 import org.apache.commons.lang.StringUtils;
 
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
@@ -46,14 +43,14 @@ public class RenameKeyspace extends Migr
     
     public RenameKeyspace(String oldName, String newName) throws ConfigurationException, IOException
     {
-        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), DatabaseDescriptor.getDefsVersion());
+        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), Schema.instance.getVersion());
         this.oldName = oldName;
         this.newName = newName;
         
-        KSMetaData oldKsm = DatabaseDescriptor.getTableDefinition(oldName);
+        KSMetaData oldKsm = schema.getTableDefinition(oldName);
         if (oldKsm == null)
             throw new ConfigurationException("Keyspace either does not exist or does not match the one currently defined.");
-        if (DatabaseDescriptor.getTableDefinition(newName) != null)
+        if (schema.getTableDefinition(newName) != null)
             throw new ConfigurationException("Keyspace already exists.");
         if (!Migration.isLegalName(newName))
             throw new ConfigurationException("Invalid keyspace name: " + newName);
@@ -64,7 +61,7 @@ public class RenameKeyspace extends Migr
         rm = makeDefinitionMutation(newKsm, oldKsm, newVersion);
     }
     
-    private static KSMetaData rename(KSMetaData ksm, String newName, boolean purgeOldCfs)
+    private KSMetaData rename(KSMetaData ksm, String newName, boolean purgeOldCfs)
     {
         // cfs will need to have their tablenames reset. CFMetaData are immutable, so new ones get created with the
         // same ids.
@@ -72,7 +69,7 @@ public class RenameKeyspace extends Migr
         for (CFMetaData oldCf : ksm.cfMetaData().values())
         {
             if (purgeOldCfs)
-                CFMetaData.purge(oldCf);
+                schema.purge(oldCf);
             newCfs.add(CFMetaData.renameTable(oldCf, newName));
         }
         return new KSMetaData(newName, ksm.strategyClass, ksm.strategyOptions, newCfs.toArray(new CFMetaData[newCfs.size()]));
@@ -83,15 +80,15 @@ public class RenameKeyspace extends Migr
         if (!StorageService.instance.isClientMode())
             renameKsStorageFiles(oldName, newName);
         
-        KSMetaData oldKsm = DatabaseDescriptor.getTableDefinition(oldName);
+        KSMetaData oldKsm = schema.getTableDefinition(oldName);
         for (CFMetaData cfm : oldKsm.cfMetaData().values())
-            CFMetaData.purge(cfm);
+            schema.purge(cfm);
         KSMetaData newKsm = rename(oldKsm, newName, true);
         for (CFMetaData cfm : newKsm.cfMetaData().values())
         {
             try
             {
-                CFMetaData.map(cfm);
+                schema.load(cfm);
             }
             catch (ConfigurationException ex)
             {
@@ -102,13 +99,13 @@ public class RenameKeyspace extends Migr
         }
         // ^^ at this point, the static methods in CFMetaData will start returning references to the new table, so
         // it helps if the node is reasonably quiescent with respect to this ks.
-        DatabaseDescriptor.clearTableDefinition(oldKsm, newVersion);
-        DatabaseDescriptor.setTableDefinition(newKsm, newVersion);
+        schema.clearTableDefinition(oldKsm, newVersion);
+        schema.setTableDefinition(newKsm, newVersion);
         
         if (!StorageService.instance.isClientMode())
         {
-            Table.clear(oldKsm.name);
-            Table.open(newName);
+            Table.clear(oldKsm.name, schema);
+            Table.open(newName, schema);
         }
     }
     

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java Mon Aug 22 23:16:04 2011
@@ -39,9 +39,9 @@ public class UpdateColumnFamily extends 
     /** assumes validation has already happened. That is, replacing oldCfm with newCfm is neither illegal or totally whackass. */
     public UpdateColumnFamily(org.apache.cassandra.db.migration.avro.CfDef cf_def) throws ConfigurationException, IOException
     {
-        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), DatabaseDescriptor.getDefsVersion());
+        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), Schema.instance.getVersion());
         
-        KSMetaData ksm = DatabaseDescriptor.getTableDefinition(cf_def.keyspace.toString());
+        KSMetaData ksm = schema.getTableDefinition(cf_def.keyspace.toString());
         if (ksm == null)
             throw new ConfigurationException("No such keyspace: " + cf_def.keyspace.toString());
         if (cf_def.column_metadata != null)
@@ -53,7 +53,7 @@ public class UpdateColumnFamily extends 
             }
         }
 
-        CFMetaData oldCfm = DatabaseDescriptor.getCFMetaData(CFMetaData.getId(cf_def.keyspace.toString(), cf_def.name.toString()));
+        CFMetaData oldCfm = schema.getCFMetaData(cf_def.keyspace.toString(), cf_def.name.toString());
         
         // create a copy of the old CF meta data. Apply new settings on top of it.
         this.metadata = CFMetaData.inflate(oldCfm.deflate());
@@ -62,26 +62,26 @@ public class UpdateColumnFamily extends 
         // create a copy of the old KS meta data. Use it to create a RowMutation that gets applied to schema and migrations.
         KSMetaData newKsMeta = KSMetaData.inflate(ksm.deflate());
         newKsMeta.cfMetaData().get(cf_def.name.toString()).apply(cf_def);
-        rm = Migration.makeDefinitionMutation(newKsMeta, null, newVersion);
+        rm = makeDefinitionMutation(newKsMeta, null, newVersion);
     }
 
     void applyModels() throws IOException
     {
-        logger.debug("Updating " + DatabaseDescriptor.getCFMetaData(metadata.cfId) + " to " + metadata);
+        logger.debug("Updating " + schema.getCFMetaData(metadata.cfId) + " to " + metadata);
         // apply the meta update.
         try 
         {
-            DatabaseDescriptor.getCFMetaData(metadata.cfId).apply(CFMetaData.convertToAvro(metadata));
+            schema.getCFMetaData(metadata.cfId).apply(CFMetaData.convertToAvro(metadata));
         } 
         catch (ConfigurationException ex) 
         {
             throw new IOException(ex);
         }
-        DatabaseDescriptor.setTableDefinition(null, newVersion);
+        schema.setTableDefinition(null, newVersion);
 
         if (!StorageService.instance.isClientMode())
         {
-            Table table = Table.open(metadata.ksName);
+            Table table = Table.open(metadata.ksName, schema);
             ColumnFamilyStore oldCfs = table.getColumnFamilyStore(metadata.cfName);
             oldCfs.reload();
         }

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java Mon Aug 22 23:16:04 2011
@@ -2,10 +2,7 @@ package org.apache.cassandra.db.migratio
 
 import java.io.IOException;
 
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.KSMetaData;
+import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.UUIDGen;
@@ -40,7 +37,7 @@ public class UpdateKeyspace extends Migr
     /** create migration based on thrift parameters */
     public UpdateKeyspace(KSMetaData ksm) throws ConfigurationException, IOException
     {
-        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), DatabaseDescriptor.getDefsVersion());
+        super(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()), Schema.instance.getVersion());
         
         assert ksm != null;
         assert ksm.cfMetaData() != null;
@@ -48,7 +45,7 @@ public class UpdateKeyspace extends Migr
             throw new ConfigurationException("Updated keyspace must not contain any column families");
     
         // create the new ksm by merging the one passed in with the cf defs from the exisitng ksm.
-        oldKsm = DatabaseDescriptor.getKSMetaData(ksm.name);
+        oldKsm = schema.getKSMetaData(ksm.name);
         if (oldKsm == null)
             throw new ConfigurationException(ksm.name + " cannot be updated because it doesn't exist.");
 
@@ -58,10 +55,10 @@ public class UpdateKeyspace extends Migr
     
     void applyModels() throws IOException
     {
-        DatabaseDescriptor.clearTableDefinition(oldKsm, newVersion);
-        DatabaseDescriptor.setTableDefinition(newKsm, newVersion);
+        schema.clearTableDefinition(oldKsm, newVersion);
+        schema.setTableDefinition(newKsm, newVersion);
 
-        Table table = Table.open(newKsm.name);
+        Table table = Table.open(newKsm.name, schema);
         try
         {
             table.createReplicationStrategy(newKsm);

Modified: cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java Mon Aug 22 23:16:04 2011
@@ -20,19 +20,12 @@ package org.apache.cassandra.dht;
 
 import java.math.BigInteger;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
+import java.util.*;
 
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.config.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.commons.lang.ArrayUtils;
 
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
@@ -197,9 +190,9 @@ public abstract class AbstractByteOrdere
             lastToken = node;
         }
 
-        for (String ks : DatabaseDescriptor.getTables())
+        for (String ks : Schema.instance.getTables())
         {
-            for (CFMetaData cfmd : DatabaseDescriptor.getKSMetaData(ks).cfMetaData().values())
+            for (CFMetaData cfmd : Schema.instance.getKSMetaData(ks).cfMetaData().values())
             {
                 for (Range r : sortedRanges)
                 {

Modified: cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java Mon Aug 22 23:16:04 2011
@@ -29,6 +29,7 @@ package org.apache.cassandra.dht;
  import com.google.common.collect.ArrayListMultimap;
  import com.google.common.collect.HashMultimap;
  import com.google.common.collect.Multimap;
+ import org.apache.cassandra.config.Schema;
  import org.apache.cassandra.gms.Gossiper;
  import org.apache.commons.lang.ArrayUtils;
  import org.apache.commons.lang.StringUtils;
@@ -82,7 +83,7 @@ public class BootStrapper
         final Multimap<String, Map.Entry<InetAddress, Collection<Range>>> rangesToFetch = HashMultimap.create();
 
         int requests = 0;
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             Map<InetAddress, Collection<Range>> workMap = getWorkMap(getRangesWithSources(table)).asMap();
             for (Map.Entry<InetAddress, Collection<Range>> entry : workMap.entrySet())

Modified: cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java Mon Aug 22 23:16:04 2011
@@ -23,9 +23,7 @@ import java.nio.ByteBuffer;
 import java.nio.charset.CharacterCodingException;
 import java.util.*;
 
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.gms.VersionedValue;
 import org.apache.cassandra.service.StorageService;
@@ -189,9 +187,9 @@ public class OrderPreservingPartitioner 
             lastToken = node;
         }
 
-        for (String ks : DatabaseDescriptor.getTables())
+        for (String ks : Schema.instance.getTables())
         {
-            for (CFMetaData cfmd : DatabaseDescriptor.getKSMetaData(ks).cfMetaData().values())
+            for (CFMetaData cfmd : Schema.instance.getKSMetaData(ks).cfMetaData().values())
             {
                 for (Range r : sortedRanges)
                 {

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java Mon Aug 22 23:16:04 2011
@@ -27,6 +27,7 @@ import java.util.concurrent.atomic.Atomi
 
 import com.google.common.base.Function;
 import com.google.common.collect.Collections2;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.io.compress.CompressedRandomAccessReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -105,7 +106,7 @@ public class SSTableReader extends SSTab
     public static SSTableReader open(Descriptor desc) throws IOException
     {
         Set<Component> components = componentsFor(desc, Descriptor.TempState.ANY);
-        return open(desc, components, DatabaseDescriptor.getCFMetaData(desc.ksname, desc.cfname), StorageService.getPartitioner());
+        return open(desc, components, Schema.instance.getCFMetaData(desc.ksname, desc.cfname), StorageService.getPartitioner());
     }
 
     public static SSTableReader open(Descriptor descriptor, Set<Component> components, CFMetaData metadata, IPartitioner partitioner) throws IOException

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Mon Aug 22 23:16:04 2011
@@ -25,6 +25,7 @@ import java.util.*;
 
 import com.google.common.collect.Sets;
 
+import org.apache.cassandra.config.Schema;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,7 +57,7 @@ public class SSTableWriter extends SSTab
     {
         this(filename,
              keyCount,
-             DatabaseDescriptor.getCFMetaData(Descriptor.fromFilename(filename)),
+             Schema.instance.getCFMetaData(Descriptor.fromFilename(filename)),
              StorageService.getPartitioner(),
              SSTableMetadata.createCollector());
     }

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java Mon Aug 22 23:16:04 2011
@@ -20,20 +20,16 @@ package org.apache.cassandra.service;
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
 import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.UUID;
-import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.gms.Gossiper;
 import org.apache.log4j.PropertyConfigurator;
 import org.slf4j.Logger;
@@ -49,7 +45,6 @@ import org.apache.cassandra.db.Table;
 import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.migration.Migration;
 import org.apache.cassandra.utils.CLibrary;
-import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.Mx4jTool;
 
 /**
@@ -141,7 +136,7 @@ public abstract class AbstractCassandraD
         // check the system table to keep user from shooting self in foot by changing partitioner, cluster name, etc.
         // we do a one-off scrub of the system table first; we can't load the list of the rest of the tables,
         // until system table is opened.
-        for (CFMetaData cfm : DatabaseDescriptor.getTableMetaData(Table.SYSTEM_TABLE).values())
+        for (CFMetaData cfm : Schema.instance.getTableMetaData(Table.SYSTEM_TABLE).values())
             ColumnFamilyStore.scrubDataDirectories(Table.SYSTEM_TABLE, cfm.cfName);
         try
         {
@@ -165,16 +160,16 @@ public abstract class AbstractCassandraD
         }
         
         // clean up debris in the rest of the tables
-        for (String table : DatabaseDescriptor.getTables()) 
+        for (String table : Schema.instance.getTables())
         {
-            for (CFMetaData cfm : DatabaseDescriptor.getTableMetaData(table).values())
+            for (CFMetaData cfm : Schema.instance.getTableMetaData(table).values())
             {
                 ColumnFamilyStore.scrubDataDirectories(table, cfm.cfName);
             }
         }
 
         // initialize keyspaces
-        for (String table : DatabaseDescriptor.getTables())
+        for (String table : Schema.instance.getTables())
         {
             if (logger.isDebugEnabled())
                 logger.debug("opening keyspace " + table);
@@ -196,7 +191,7 @@ public abstract class AbstractCassandraD
         // check to see if CL.recovery modified the lastMigrationId. if it did, we need to re apply migrations. this isn't
         // the same as merely reloading the schema (which wouldn't perform file deletion after a DROP). The solution
         // is to read those migrations from disk and apply them.
-        UUID currentMigration = DatabaseDescriptor.getDefsVersion();
+        UUID currentMigration = Schema.instance.getVersion();
         UUID lastMigration = Migration.getLastMigrationId();
         if ((lastMigration != null) && (lastMigration.timestamp() > currentMigration.timestamp()))
         {

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/MigrationManager.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/MigrationManager.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/MigrationManager.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/MigrationManager.java Mon Aug 22 23:16:04 2011
@@ -28,13 +28,13 @@ import java.util.concurrent.TimeUnit;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.MapMaker;
+import org.apache.cassandra.config.Schema;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
 import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.Column;
 import org.apache.cassandra.db.IColumn;
 import org.apache.cassandra.db.marshal.TimeUUIDType;
@@ -42,9 +42,7 @@ import org.apache.cassandra.db.migration
 import org.apache.cassandra.gms.*;
 import org.apache.cassandra.io.util.FastByteArrayInputStream;
 import org.apache.cassandra.io.util.FastByteArrayOutputStream;
-import org.apache.cassandra.net.CachingMessageProducer;
 import org.apache.cassandra.net.Message;
-import org.apache.cassandra.net.MessageProducer;
 import org.apache.cassandra.net.MessagingService;
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.FBUtilities;
@@ -88,7 +86,7 @@ public class MigrationManager implements
      */
     public static void rectify(UUID theirVersion, InetAddress endpoint)
     {
-        UUID myVersion = DatabaseDescriptor.getDefsVersion();
+        UUID myVersion = Schema.instance.getVersion();
         if (theirVersion.timestamp() < myVersion.timestamp()
             && !StorageService.instance.isClientMode())
         {

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java Mon Aug 22 23:16:04 2011
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.cassandra.config.Schema;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -97,7 +98,7 @@ public class ReadCallback<T> implements 
             assert command instanceof ReadCommand : command;
             String table = ((RowDigestResolver) resolver).table;
             String columnFamily = ((ReadCommand) command).getColumnFamilyName();
-            CFMetaData cfmd = DatabaseDescriptor.getTableMetaData(table).get(columnFamily);
+            CFMetaData cfmd = Schema.instance.getTableMetaData(table).get(columnFamily);
             return cfmd.getReadRepairChance() > random.get().nextDouble();
         }
         // we don't read repair on range scans

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Mon Aug 22 23:16:04 2011
@@ -31,6 +31,7 @@ import com.google.common.collect.HashMul
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Multimap;
 
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.net.*;
 
 import org.apache.commons.lang.ArrayUtils;
@@ -802,7 +803,7 @@ public class StorageProxy implements Sto
      */
     public static Map<String, List<String>> describeSchemaVersions()
     {
-        final String myVersion = DatabaseDescriptor.getDefsVersion().toString();
+        final String myVersion = Schema.instance.getVersion().toString();
         final Map<InetAddress, UUID> versions = new ConcurrentHashMap<InetAddress, UUID>();
         final Set<InetAddress> liveHosts = Gossiper.instance.getLiveMembers();
         final CountDownLatch latch = new CountDownLatch(liveHosts.size());

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Mon Aug 22 23:16:04 2011
@@ -33,6 +33,7 @@ import javax.management.ObjectName;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
+import org.apache.cassandra.config.*;
 import org.apache.log4j.Level;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -41,10 +42,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.dht.*;
@@ -364,7 +361,7 @@ public class StorageService implements I
         {
             throw new IOError(ex);
         }
-        MigrationManager.passiveAnnounce(DatabaseDescriptor.getDefsVersion());
+        MigrationManager.passiveAnnounce(Schema.instance.getVersion());
     }
 
     public synchronized void initServer() throws IOException, ConfigurationException
@@ -418,7 +415,7 @@ public class StorageService implements I
                 List<Future<?>> flushes = new ArrayList<Future<?>>();
                 for (Table table : Table.all())
                 {
-                    KSMetaData ksm = DatabaseDescriptor.getKSMetaData(table.name);
+                    KSMetaData ksm = Schema.instance.getKSMetaData(table.name);
                     if (!ksm.isDurableWrites())
                     {
                         for (ColumnFamilyStore cfs : table.getColumnFamilyStores())
@@ -460,7 +457,7 @@ public class StorageService implements I
 
         MessagingService.instance().listen(FBUtilities.getLocalAddress());
         LoadBroadcaster.instance.startBroadcasting();
-        MigrationManager.passiveAnnounce(DatabaseDescriptor.getDefsVersion());
+        MigrationManager.passiveAnnounce(Schema.instance.getVersion());
         Gossiper.instance.addLocalApplicationState(ApplicationState.RELEASE_VERSION, valueFactory.releaseVersion());
 
         HintedHandOffManager.instance.registerMBean();
@@ -493,7 +490,7 @@ public class StorageService implements I
             setMode("Joining: getting bootstrap token", true);
             token = BootStrapper.getBootstrapToken(tokenMetadata_, LoadBroadcaster.instance.getLoadInfo());
             // don't bootstrap if there are no tables defined.
-            if (DatabaseDescriptor.getNonSystemTables().size() > 0)
+            if (Schema.instance.getNonSystemTables().size() > 0)
             {
                 bootstrap(token);
                 assert !isBootstrapMode; // bootstrap will block until finished
@@ -598,7 +595,7 @@ public class StorageService implements I
         // some people just want to get a visual representation of things. Allow null and set it to the first
         // non-system table.
         if (keyspace == null)
-            keyspace = DatabaseDescriptor.getNonSystemTables().get(0);
+            keyspace = Schema.instance.getNonSystemTables().get(0);
 
         /* All the ranges for the tokens */
         Map<Range, List<String>> map = new HashMap<Range, List<String>>();
@@ -622,7 +619,7 @@ public class StorageService implements I
         // some people just want to get a visual representation of things. Allow null and set it to the first
         // non-system table.
         if (keyspace == null)
-            keyspace = DatabaseDescriptor.getNonSystemTables().get(0);
+            keyspace = Schema.instance.getNonSystemTables().get(0);
 
         Map<Range, List<String>> map = new HashMap<Range, List<String>>();
         for (Map.Entry<Range, Collection<InetAddress>> entry : tokenMetadata_.getPendingRanges(keyspace).entrySet())
@@ -992,7 +989,7 @@ public class StorageService implements I
      */
     private void calculatePendingRanges()
     {
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
             calculatePendingRanges(Table.open(table).getReplicationStrategy(), table);
     }
 
@@ -1153,7 +1150,7 @@ public class StorageService implements I
 
         final InetAddress myAddress = FBUtilities.getBroadcastAddress();
 
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             Multimap<Range, InetAddress> changedRanges = getChangedRangesForLeaving(table, endpoint); 
             Set<Range> myNewRanges = new HashSet<Range>();
@@ -1268,7 +1265,7 @@ public class StorageService implements I
     public double getLoad()
     {
         double bytes = 0;
-        for (String tableName : DatabaseDescriptor.getTables())
+        for (String tableName : Schema.instance.getTables())
         {
             Table table = Table.open(tableName);
             for (ColumnFamilyStore cfs : table.getColumnFamilyStores())
@@ -1472,7 +1469,7 @@ public class StorageService implements I
 
     private Table getValidTable(String tableName) throws IOException
     {
-        if (!DatabaseDescriptor.getTables().contains(tableName))
+        if (!Schema.instance.getTables().contains(tableName))
         {
             throw new IOException("Table " + tableName + "does not exist");
         }
@@ -1689,7 +1686,7 @@ public class StorageService implements I
      */
     public List<InetAddress> getNaturalEndpoints(String table, String cf, String key)
     {
-        CFMetaData cfMetaData = DatabaseDescriptor.getTableDefinition(table).cfMetaData().get(cf);
+        CFMetaData cfMetaData = Schema.instance.getTableDefinition(table).cfMetaData().get(cf);
         return getNaturalEndpoints(table, partitioner.getToken(cfMetaData.getKeyValidator().fromString(key)));
     }
 
@@ -1832,7 +1829,7 @@ public class StorageService implements I
             throw new UnsupportedOperationException("local node is not a member of the token ring yet");
         if (tokenMetadata_.cloneAfterAllLeft().sortedTokens().size() < 2)
             throw new UnsupportedOperationException("no other normal nodes in the ring; decommission would be pointless");
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             if (tokenMetadata_.getPendingRanges(table, FBUtilities.getBroadcastAddress()).size() > 0)
                 throw new UnsupportedOperationException("data is currently moving to this node; unable to leave the ring");
@@ -1880,7 +1877,7 @@ public class StorageService implements I
     {
         Map<String, Multimap<Range, InetAddress>> rangesToStream = new HashMap<String, Multimap<Range, InetAddress>>();
 
-        for (final String table : DatabaseDescriptor.getNonSystemTables())
+        for (final String table : Schema.instance.getNonSystemTables())
         {
             Multimap<Range, InetAddress> rangesMM = getChangedRangesForLeaving(table, FBUtilities.getBroadcastAddress());
 
@@ -1932,7 +1929,7 @@ public class StorageService implements I
 
         // address of the current node
         InetAddress localAddress = FBUtilities.getBroadcastAddress();
-        List<String> tablesToProcess = DatabaseDescriptor.getNonSystemTables();
+        List<String> tablesToProcess = Schema.instance.getNonSystemTables();
 
         // checking if data is moving to this node
         for (String table : tablesToProcess)
@@ -2121,7 +2118,7 @@ public class StorageService implements I
             throw new UnsupportedOperationException("This node is already processing a removal. Wait for it to complete, or use 'removetoken force' if this has failed.");
 
         // Find the endpoints that are going to become responsible for data
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             // if the replication factor is 1 the data is lost so we shouldn't wait for confirmation
             if (Table.open(table).getReplicationStrategy().getReplicationFactor() == 1)
@@ -2253,7 +2250,7 @@ public class StorageService implements I
         // lets flush.
         setMode("Draining: flushing column families", false);
         List<ColumnFamilyStore> cfses = new ArrayList<ColumnFamilyStore>();
-        for (String tableName : DatabaseDescriptor.getNonSystemTables())
+        for (String tableName : Schema.instance.getNonSystemTables())
         {
             Table table = Table.open(tableName);
             cfses.addAll(table.getColumnFamilyStores());
@@ -2319,7 +2316,7 @@ public class StorageService implements I
 
     public List<String> getKeyspaces()
     {
-        List<String> tableslist = new ArrayList<String>(DatabaseDescriptor.getTables());
+        List<String> tableslist = new ArrayList<String>(Schema.instance.getTables());
         return Collections.unmodifiableList(tableslist);
     }
 
@@ -2339,7 +2336,7 @@ public class StorageService implements I
 
         // point snitch references to the new instance
         DatabaseDescriptor.setEndpointSnitch(newSnitch);
-        for (String ks : DatabaseDescriptor.getTables())
+        for (String ks : Schema.instance.getTables())
         {
             Table.open(ks).getReplicationStrategy().snitch = newSnitch;
         }
@@ -2578,7 +2575,7 @@ public class StorageService implements I
 
             public boolean validateColumnFamily(String keyspace, String cfName)
             {
-                return DatabaseDescriptor.getCFMetaData(keyspace, cfName) != null;
+                return Schema.instance.getCFMetaData(keyspace, cfName) != null;
             }
         };
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Mon Aug 22 23:16:04 2011
@@ -18,7 +18,6 @@
 
 package org.apache.cassandra.thrift;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.SocketAddress;
@@ -649,8 +648,8 @@ public class CassandraServer implements 
     public KsDef describe_keyspace(String table) throws NotFoundException, InvalidRequestException
     {
         state().hasKeyspaceListAccess(Permission.READ);
-        
-        KSMetaData ksm = DatabaseDescriptor.getTableDefinition(table);
+
+        KSMetaData ksm = Schema.instance.getTableDefinition(table);
         if (ksm == null)
             throw new NotFoundException();
 
@@ -754,8 +753,8 @@ public class CassandraServer implements 
     public List<KsDef> describe_keyspaces() throws TException, InvalidRequestException
     {
         state().hasKeyspaceListAccess(Permission.READ);
-        
-        Set<String> keyspaces = DatabaseDescriptor.getTables();
+
+        Set<String> keyspaces = Schema.instance.getTables();
         List<KsDef> ksset = new ArrayList<KsDef>();
         for (String ks : keyspaces)
         {
@@ -783,7 +782,7 @@ public class CassandraServer implements 
 
     public List<TokenRange> describe_ring(String keyspace)throws InvalidRequestException
     {
-        if (keyspace == null || !DatabaseDescriptor.getNonSystemTables().contains(keyspace))
+        if (keyspace == null || !Schema.instance.getNonSystemTables().contains(keyspace))
             throw new InvalidRequestException("There is no ring for the keyspace: " + keyspace);
         List<TokenRange> ranges = new ArrayList<TokenRange>();
         Token.TokenFactory tf = StorageService.getPartitioner().getTokenFactory();
@@ -882,7 +881,7 @@ public class CassandraServer implements 
         try
         {
             applyMigrationOnStage(new AddColumnFamily(CFMetaData.fromThrift(cf_def)));
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {
@@ -908,7 +907,7 @@ public class CassandraServer implements 
         try
         {
             applyMigrationOnStage(new DropColumnFamily(state().getKeyspace(), column_family));
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {
@@ -952,7 +951,7 @@ public class CassandraServer implements 
 
             ThriftValidation.validateKsDef(ks_def);
             applyMigrationOnStage(new AddKeyspace(KSMetaData.fromThrift(ks_def, cfDefs.toArray(new CFMetaData[cfDefs.size()]))));
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {
@@ -978,7 +977,7 @@ public class CassandraServer implements 
         try
         {
             applyMigrationOnStage(new DropKeyspace(keyspace));
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {
@@ -1010,7 +1009,7 @@ public class CassandraServer implements 
         {
             ThriftValidation.validateKsDef(ks_def);
             applyMigrationOnStage(new UpdateKeyspace(KSMetaData.fromThrift(ks_def)));
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {
@@ -1033,7 +1032,7 @@ public class CassandraServer implements 
         state().hasColumnFamilyListAccess(Permission.WRITE);
         if (cf_def.keyspace == null || cf_def.name == null)
             throw new InvalidRequestException("Keyspace and CF name must be set.");
-        CFMetaData oldCfm = DatabaseDescriptor.getCFMetaData(CFMetaData.getId(cf_def.keyspace, cf_def.name));
+        CFMetaData oldCfm = Schema.instance.getCFMetaData(cf_def.keyspace, cf_def.name);
         if (oldCfm == null)
             throw new InvalidRequestException("Could not find column family definition to modify.");
         CFMetaData.addDefaultIndexNames(cf_def);
@@ -1046,7 +1045,7 @@ public class CassandraServer implements 
             CFMetaData.applyImplicitDefaults(cf_def);
             UpdateColumnFamily update = new UpdateColumnFamily(CFMetaData.convertToAvro(cf_def));
             applyMigrationOnStage(update);
-            return DatabaseDescriptor.getDefsVersion().toString();
+            return Schema.instance.getVersion().toString();
         }
         catch (ConfigurationException e)
         {

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Mon Aug 22 23:16:04 2011
@@ -82,7 +82,7 @@ public class ThriftValidation
 
     public static void validateTable(String tablename) throws KeyspaceNotDefinedException
     {
-        if (!DatabaseDescriptor.getTables().contains(tablename))
+        if (!Schema.instance.getTables().contains(tablename))
         {
             throw new KeyspaceNotDefinedException("Keyspace " + tablename + " does not exist");
         }
@@ -125,7 +125,7 @@ public class ThriftValidation
         if (cfName.isEmpty())
             throw new InvalidRequestException("non-empty columnfamily is required");
 
-        CFMetaData metadata = DatabaseDescriptor.getCFMetaData(tablename, cfName);
+        CFMetaData metadata = Schema.instance.getCFMetaData(tablename, cfName);
         if (metadata == null)
             throw new InvalidRequestException("unconfigured columnfamily " + cfName);
 
@@ -523,7 +523,7 @@ public class ThriftValidation
                                                                 me.getMessage()));
             }
 
-            AbstractType valueValidator = DatabaseDescriptor.getValueValidator(metadata.ksName, metadata.cfName, expression.column_name);
+            AbstractType valueValidator = Schema.instance.getValueValidator(metadata.ksName, metadata.cfName, expression.column_name);
             try
             {
                 valueValidator.validate(expression.value);

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableExport.java Mon Aug 22 23:16:04 2011
@@ -26,6 +26,7 @@ import java.util.*;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.io.util.RandomAccessReader;
@@ -387,7 +388,7 @@ public class SSTableExport
         String ssTableFileName = new File(cmd.getArgs()[0]).getAbsolutePath();
 
         DatabaseDescriptor.loadSchemas();
-        if (DatabaseDescriptor.getNonSystemTables().size() < 1)
+        if (Schema.instance.getNonSystemTables().size() < 1)
         {
             String msg = "no non-system tables are defined";
             System.err.println(msg);

Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java Mon Aug 22 23:16:04 2011
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
 
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.db.marshal.MarshalException;
@@ -464,7 +465,7 @@ public class SSTableImport
         }
 
         DatabaseDescriptor.loadSchemas();
-        if (DatabaseDescriptor.getNonSystemTables().size() < 1)
+        if (Schema.instance.getNonSystemTables().size() < 1)
         {
             String msg = "no non-system tables are defined";
             System.err.println(msg);

Modified: cassandra/trunk/test/long/org/apache/cassandra/db/compaction/LongCompactionSpeedTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/long/org/apache/cassandra/db/compaction/LongCompactionSpeedTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/long/org/apache/cassandra/db/compaction/LongCompactionSpeedTest.java (original)
+++ cassandra/trunk/test/long/org/apache/cassandra/db/compaction/LongCompactionSpeedTest.java Mon Aug 22 23:16:04 2011
@@ -18,27 +18,15 @@
 */
 package org.apache.cassandra.db.compaction;
 
-import java.io.IOException;
-import java.net.InetAddress;
-import java.nio.ByteBuffer;
 import java.util.*;
 
+import org.apache.cassandra.config.Schema;
 import org.junit.Test;
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.Util;
 import org.apache.cassandra.db.*;
-import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.io.util.FileUtils;
-import org.apache.cassandra.io.sstable.Component;
 import org.apache.cassandra.io.sstable.SSTableReader;
 import org.apache.cassandra.io.sstable.SSTableUtils;
-import org.apache.cassandra.io.sstable.SSTableWriter;
-import org.apache.cassandra.streaming.OperationType;
-import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.NodeId;
-import static org.apache.cassandra.db.context.CounterContext.ContextState;
 
 import static junit.framework.Assert.assertEquals;
 
@@ -104,7 +92,7 @@ public class LongCompactionSpeedTest ext
         Thread.sleep(1000);
 
         long start = System.currentTimeMillis();
-        final int gcBefore = (int) (System.currentTimeMillis() / 1000) - DatabaseDescriptor.getCFMetaData(TABLE1, "Standard1").getGcGraceSeconds();
+        final int gcBefore = (int) (System.currentTimeMillis() / 1000) - Schema.instance.getCFMetaData(TABLE1, "Standard1").getGcGraceSeconds();
         new CompactionTask(store, sstables, gcBefore).execute(null);
         System.out.println(String.format("%s: sstables=%d rowsper=%d colsper=%d: %d ms",
                                          this.getClass().getName(),

Modified: cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java Mon Aug 22 23:16:04 2011
@@ -22,12 +22,10 @@ import java.nio.ByteBuffer;
 import java.util.*;
 
 import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.commons.lang.NotImplementedException;
 
 import com.google.common.base.Charsets;
 import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.ColumnFamilyType;
-import org.apache.cassandra.db.KeyspaceNotDefinedException;
 import org.apache.cassandra.db.marshal.*;
 import org.apache.cassandra.locator.AbstractReplicationStrategy;
 import org.apache.cassandra.locator.SimpleStrategy;
@@ -54,12 +52,7 @@ public class SchemaLoader
 
         try
         {
-            for (KSMetaData ksm : schemaDefinition())
-            {
-                for (CFMetaData cfm : ksm.cfMetaData().values())
-                    CFMetaData.map(cfm);
-                DatabaseDescriptor.setTableDefinition(ksm, DatabaseDescriptor.getDefsVersion());
-            }
+            Schema.instance.load(schemaDefinition(), Schema.instance.getVersion());
         }
         catch (ConfigurationException e)
         {

Modified: cassandra/trunk/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java Mon Aug 22 23:16:04 2011
@@ -47,9 +47,9 @@ public class DatabaseDescriptorTest
     public void testCFMetaDataSerialization() throws IOException, ConfigurationException
     {
         // test serialization of all defined test CFs.
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
-            for (CFMetaData cfm : DatabaseDescriptor.getTableMetaData(table).values())
+            for (CFMetaData cfm : Schema.instance.getTableMetaData(table).values())
             {
                 CFMetaData cfmDupe = CFMetaData.inflate(serDe(cfm.deflate(), new org.apache.cassandra.db.migration.avro.CfDef()));
                 assert cfmDupe != null;
@@ -61,7 +61,7 @@ public class DatabaseDescriptorTest
     @Test
     public void testKSMetaDataSerialization() throws IOException, ConfigurationException
     {
-        for (KSMetaData ksm : DatabaseDescriptor.tables.values())
+        for (KSMetaData ksm : Schema.instance.getTableDefinitions())
         {
             // Not testing round-trip on the KsDef via serDe() because maps
             //  cannot be compared in avro.
@@ -77,26 +77,26 @@ public class DatabaseDescriptorTest
     {
         CleanupHelper.cleanupAndLeaveDirs();
         DatabaseDescriptor.loadSchemas();
-        assert DatabaseDescriptor.getNonSystemTables().size() == 0;
+        assert Schema.instance.getNonSystemTables().size() == 0;
         
         // add a few.
         AddKeyspace ks0 = new AddKeyspace(new KSMetaData("ks0", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
         ks0.apply();
         AddKeyspace ks1 = new AddKeyspace(new KSMetaData("ks1", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
         ks1.apply();
-        
-        assert DatabaseDescriptor.getTableDefinition("ks0") != null;
-        assert DatabaseDescriptor.getTableDefinition("ks1") != null;
-        
-        DatabaseDescriptor.clearTableDefinition(DatabaseDescriptor.getTableDefinition("ks0"), new UUID(4096, 0));
-        DatabaseDescriptor.clearTableDefinition(DatabaseDescriptor.getTableDefinition("ks1"), new UUID(4096, 0));
-        
-        assert DatabaseDescriptor.getTableDefinition("ks0") == null;
-        assert DatabaseDescriptor.getTableDefinition("ks1") == null;
+
+        assert Schema.instance.getTableDefinition("ks0") != null;
+        assert Schema.instance.getTableDefinition("ks1") != null;
+
+        Schema.instance.clearTableDefinition(Schema.instance.getTableDefinition("ks0"), new UUID(4096, 0));
+        Schema.instance.clearTableDefinition(Schema.instance.getTableDefinition("ks1"), new UUID(4096, 0));
+
+        assert Schema.instance.getTableDefinition("ks0") == null;
+        assert Schema.instance.getTableDefinition("ks1") == null;
         
         DatabaseDescriptor.loadSchemas();
-        
-        assert DatabaseDescriptor.getTableDefinition("ks0") != null;
-        assert DatabaseDescriptor.getTableDefinition("ks1") != null;
+
+        assert Schema.instance.getTableDefinition("ks0") != null;
+        assert Schema.instance.getTableDefinition("ks1") != null;
     }
 }

Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java Mon Aug 22 23:16:04 2011
@@ -29,11 +29,7 @@ import java.util.concurrent.ExecutionExc
 import org.apache.avro.util.Utf8;
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.Util;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.KSMetaData;
+import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.filter.QueryFilter;
 import org.apache.cassandra.db.filter.QueryPath;
 import org.apache.cassandra.db.marshal.BytesType;
@@ -170,10 +166,10 @@ public class DefsTest extends CleanupHel
         List<KSMetaData> defs = new ArrayList<KSMetaData>(DefsTable.loadFromStorage(first));
 
         assert defs.size() > 0;
-        assert defs.size() == DatabaseDescriptor.getNonSystemTables().size();
+        assert defs.size() == Schema.instance.getNonSystemTables().size();
         for (KSMetaData loaded : defs)
         {
-            KSMetaData defined = DatabaseDescriptor.getTableDefinition(loaded.name);
+            KSMetaData defined = Schema.instance.getTableDefinition(loaded.name);
             assert defined.equals(loaded);
         }
     }
@@ -200,10 +196,10 @@ public class DefsTest extends CleanupHel
     public void testMigrations() throws IOException, ConfigurationException
     {
         // do a save. make sure it doesn't mess with the defs version.
-        UUID prior = DatabaseDescriptor.getDefsVersion();
+        UUID prior = Schema.instance.getVersion();
         UUID ver0 = UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress());
         DefsTable.dumpToStorage(ver0);
-        assert DatabaseDescriptor.getDefsVersion().equals(prior);
+        assert Schema.instance.getVersion().equals(prior);
 
         // add a cf.
         CFMetaData newCf1 = addTestCF("Keyspace1", "MigrationCf_1", "Migration CF");
@@ -211,19 +207,19 @@ public class DefsTest extends CleanupHel
         Migration m1 = new AddColumnFamily(newCf1);
         m1.apply();
         UUID ver1 = m1.getVersion();
-        assert DatabaseDescriptor.getDefsVersion().equals(ver1);
+        assert Schema.instance.getVersion().equals(ver1);
         
         // rename it.
         Migration m2 = new RenameColumnFamily("Keyspace1", "MigrationCf_1", "MigrationCf_2");
         m2.apply();
         UUID ver2 = m2.getVersion();
-        assert DatabaseDescriptor.getDefsVersion().equals(ver2);
+        assert Schema.instance.getVersion().equals(ver2);
         
         // drop it.
         Migration m3 = new DropColumnFamily("Keyspace1", "MigrationCf_2");
         m3.apply();
         UUID ver3 = m3.getVersion();
-        assert DatabaseDescriptor.getDefsVersion().equals(ver3);
+        assert Schema.instance.getVersion().equals(ver3);
         
         // now lets load the older migrations to see if that code works.
         Collection<IColumn> serializedMigrations = Migration.getLocalMigrations(ver1, ver3);
@@ -255,15 +251,15 @@ public class DefsTest extends CleanupHel
     {
         final String ks = "Keyspace1";
         final String cf = "BrandNewCfWithNull";
-        KSMetaData original = DatabaseDescriptor.getTableDefinition(ks);
+        KSMetaData original = Schema.instance.getTableDefinition(ks);
 
         CFMetaData newCf = addTestCF(original.name, cf, null);
 
-        assert !DatabaseDescriptor.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
+        assert !Schema.instance.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
         new AddColumnFamily(newCf).apply();
 
-        assert DatabaseDescriptor.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
-        assert DatabaseDescriptor.getTableDefinition(ks).cfMetaData().get(newCf.cfName).equals(newCf);  
+        assert Schema.instance.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
+        assert Schema.instance.getTableDefinition(ks).cfMetaData().get(newCf.cfName).equals(newCf);
     }
 
     @Test
@@ -271,15 +267,15 @@ public class DefsTest extends CleanupHel
     {
         final String ks = "Keyspace1";
         final String cf = "BrandNewCf";
-        KSMetaData original = DatabaseDescriptor.getTableDefinition(ks);
+        KSMetaData original = Schema.instance.getTableDefinition(ks);
 
         CFMetaData newCf = addTestCF(original.name, cf, "A New Column Family");
 
-        assert !DatabaseDescriptor.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
+        assert !Schema.instance.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
         new AddColumnFamily(newCf).apply();
 
-        assert DatabaseDescriptor.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
-        assert DatabaseDescriptor.getTableDefinition(ks).cfMetaData().get(newCf.cfName).equals(newCf);
+        assert Schema.instance.getTableDefinition(ks).cfMetaData().containsKey(newCf.cfName);
+        assert Schema.instance.getTableDefinition(ks).cfMetaData().get(newCf.cfName).equals(newCf);
 
         // now read and write to it.
         DecoratedKey dk = Util.dk("key0");
@@ -301,7 +297,7 @@ public class DefsTest extends CleanupHel
     {
         DecoratedKey dk = Util.dk("dropCf");
         // sanity
-        final KSMetaData ks = DatabaseDescriptor.getTableDefinition("Keyspace1");
+        final KSMetaData ks = Schema.instance.getTableDefinition("Keyspace1");
         assert ks != null;
         final CFMetaData cfm = ks.cfMetaData().get("Standard1");
         assert cfm != null;
@@ -318,8 +314,8 @@ public class DefsTest extends CleanupHel
         assert DefsTable.getFiles(cfm.ksName, cfm.cfName).size() > 0;
         
         new DropColumnFamily(ks.name, cfm.cfName).apply();
-        
-        assert !DatabaseDescriptor.getTableDefinition(ks.name).cfMetaData().containsKey(cfm.cfName);
+
+        assert !Schema.instance.getTableDefinition(ks.name).cfMetaData().containsKey(cfm.cfName);
         
         // any write should fail.
         rm = new RowMutation(ks.name, dk.key);
@@ -347,7 +343,7 @@ public class DefsTest extends CleanupHel
     public void renameCf() throws ConfigurationException, IOException, ExecutionException, InterruptedException
     {
         DecoratedKey dk = Util.dk("key0");
-        final KSMetaData ks = DatabaseDescriptor.getTableDefinition("Keyspace2");
+        final KSMetaData ks = Schema.instance.getTableDefinition("Keyspace2");
         assert ks != null;
         final CFMetaData oldCfm = ks.cfMetaData().get("Standard1");
         assert oldCfm != null;
@@ -365,9 +361,9 @@ public class DefsTest extends CleanupHel
         
         final String cfName = "St4ndard1Replacement";
         new RenameColumnFamily(oldCfm.ksName, oldCfm.cfName, cfName).apply();
-        
-        assert !DatabaseDescriptor.getTableDefinition(ks.name).cfMetaData().containsKey(oldCfm.cfName);
-        assert DatabaseDescriptor.getTableDefinition(ks.name).cfMetaData().containsKey(cfName);
+
+        assert !Schema.instance.getTableDefinition(ks.name).cfMetaData().containsKey(oldCfm.cfName);
+        assert Schema.instance.getTableDefinition(ks.name).cfMetaData().containsKey(cfName);
         
         // verify that new files are there.
         assert DefsTable.getFiles(oldCfm.ksName, cfName).size() == fileCount;
@@ -398,9 +394,9 @@ public class DefsTest extends CleanupHel
         KSMetaData newKs = new KSMetaData(newCf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), newCf);
         
         new AddKeyspace(newKs).apply();
-        
-        assert DatabaseDescriptor.getTableDefinition(newCf.ksName) != null;
-        assert DatabaseDescriptor.getTableDefinition(newCf.ksName) == newKs;
+
+        assert Schema.instance.getTableDefinition(newCf.ksName) != null;
+        assert Schema.instance.getTableDefinition(newCf.ksName) == newKs;
 
         // test reads and writes.
         RowMutation rm = new RowMutation(newCf.ksName, dk.key);
@@ -421,7 +417,7 @@ public class DefsTest extends CleanupHel
     {
         DecoratedKey dk = Util.dk("dropKs");
         // sanity
-        final KSMetaData ks = DatabaseDescriptor.getTableDefinition("Keyspace1");
+        final KSMetaData ks = Schema.instance.getTableDefinition("Keyspace1");
         assert ks != null;
         final CFMetaData cfm = ks.cfMetaData().get("Standard2");
         assert cfm != null;
@@ -437,8 +433,8 @@ public class DefsTest extends CleanupHel
         assert DefsTable.getFiles(cfm.ksName, cfm.cfName).size() > 0;
         
         new DropKeyspace(ks.name).apply();
-        
-        assert DatabaseDescriptor.getTableDefinition(ks.name) == null;
+
+        assert Schema.instance.getTableDefinition(ks.name) == null;
         
         // write should fail.
         rm = new RowMutation(ks.name, dk.key);
@@ -472,7 +468,7 @@ public class DefsTest extends CleanupHel
     {
         DecoratedKey dk = Util.dk("dropKs");
         // sanity
-        final KSMetaData ks = DatabaseDescriptor.getTableDefinition("Keyspace3");
+        final KSMetaData ks = Schema.instance.getTableDefinition("Keyspace3");
         assert ks != null;
         final CFMetaData cfm = ks.cfMetaData().get("Standard1");
         assert cfm != null;
@@ -485,14 +481,14 @@ public class DefsTest extends CleanupHel
 
         new DropKeyspace(ks.name).apply();
 
-        assert DatabaseDescriptor.getTableDefinition(ks.name) == null;
+        assert Schema.instance.getTableDefinition(ks.name) == null;
     }
 
     @Test
     public void renameKs() throws ConfigurationException, IOException, ExecutionException, InterruptedException
     {
         DecoratedKey dk = Util.dk("renameKs");
-        final KSMetaData oldKs = DatabaseDescriptor.getTableDefinition("Keyspace2");
+        final KSMetaData oldKs = Schema.instance.getTableDefinition("Keyspace2");
         assert oldKs != null;
         final String cfName = "Standard3";
         assert oldKs.cfMetaData().containsKey(cfName);
@@ -510,9 +506,9 @@ public class DefsTest extends CleanupHel
         
         final String newKsName = "RenamedKeyspace2";
         new RenameKeyspace(oldKs.name, newKsName).apply();
-        KSMetaData newKs = DatabaseDescriptor.getTableDefinition(newKsName);
-        
-        assert DatabaseDescriptor.getTableDefinition(oldKs.name) == null;
+        KSMetaData newKs = Schema.instance.getTableDefinition(newKsName);
+
+        assert Schema.instance.getTableDefinition(oldKs.name) == null;
         assert newKs != null;
         assert newKs.name.equals(newKsName);
         assert newKs.cfMetaData().containsKey(cfName);
@@ -572,23 +568,23 @@ public class DefsTest extends CleanupHel
     @Test
     public void createEmptyKsAddNewCf() throws ConfigurationException, IOException, ExecutionException, InterruptedException
     {
-        assert DatabaseDescriptor.getTableDefinition("EmptyKeyspace") == null;
+        assert Schema.instance.getTableDefinition("EmptyKeyspace") == null;
         
         KSMetaData newKs = new KSMetaData("EmptyKeyspace", SimpleStrategy.class, KSMetaData.optsWithRF(5));
 
         new AddKeyspace(newKs).apply();
-        assert DatabaseDescriptor.getTableDefinition("EmptyKeyspace") != null;
+        assert Schema.instance.getTableDefinition("EmptyKeyspace") != null;
 
         CFMetaData newCf = addTestCF("EmptyKeyspace", "AddedLater", "A new CF to add to an empty KS");
 
         //should not exist until apply
-        assert !DatabaseDescriptor.getTableDefinition(newKs.name).cfMetaData().containsKey(newCf.cfName);
+        assert !Schema.instance.getTableDefinition(newKs.name).cfMetaData().containsKey(newCf.cfName);
 
         //add the new CF to the empty space
         new AddColumnFamily(newCf).apply();
 
-        assert DatabaseDescriptor.getTableDefinition(newKs.name).cfMetaData().containsKey(newCf.cfName);
-        assert DatabaseDescriptor.getTableDefinition(newKs.name).cfMetaData().get(newCf.cfName).equals(newCf);
+        assert Schema.instance.getTableDefinition(newKs.name).cfMetaData().containsKey(newCf.cfName);
+        assert Schema.instance.getTableDefinition(newKs.name).cfMetaData().get(newCf.cfName).equals(newCf);
 
         // now read and write to it.
         DecoratedKey dk = Util.dk("key0");
@@ -613,9 +609,9 @@ public class DefsTest extends CleanupHel
         KSMetaData oldKs = new KSMetaData(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), cf);
         
         new AddKeyspace(oldKs).apply();
-        
-        assert DatabaseDescriptor.getTableDefinition(cf.ksName) != null;
-        assert DatabaseDescriptor.getTableDefinition(cf.ksName) == oldKs;
+
+        assert Schema.instance.getTableDefinition(cf.ksName) != null;
+        assert Schema.instance.getTableDefinition(cf.ksName) == oldKs;
         
         // anything with cf defs should fail.
         CFMetaData cf2 = addTestCF(cf.ksName, "AddedStandard2", "A new cf for a new ks");
@@ -644,8 +640,8 @@ public class DefsTest extends CleanupHel
         
         KSMetaData newKs = new KSMetaData(cf.ksName, OldNetworkTopologyStrategy.class, KSMetaData.optsWithRF(1));
         new UpdateKeyspace(newKs).apply();
-        
-        KSMetaData newFetchedKs = DatabaseDescriptor.getKSMetaData(newKs.name);
+
+        KSMetaData newFetchedKs = Schema.instance.getKSMetaData(newKs.name);
         assert newFetchedKs.strategyClass.equals(newKs.strategyClass);
         assert !newFetchedKs.strategyClass.equals(oldKs.strategyClass);
     }
@@ -657,10 +653,10 @@ public class DefsTest extends CleanupHel
         CFMetaData cf = addTestCF("UpdatedCfKs", "Standard1added", "A new cf that will be updated");
         KSMetaData ksm = new KSMetaData(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(1), cf);
         new AddKeyspace(ksm).apply();
-        
-        assert DatabaseDescriptor.getTableDefinition(cf.ksName) != null;
-        assert DatabaseDescriptor.getTableDefinition(cf.ksName) == ksm;
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName) != null;
+
+        assert Schema.instance.getTableDefinition(cf.ksName) != null;
+        assert Schema.instance.getTableDefinition(cf.ksName) == ksm;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName) != null;
         
         // updating certain fields should fail.
         org.apache.cassandra.db.migration.avro.CfDef cf_def = CFMetaData.convertToAvro(cf);
@@ -698,12 +694,12 @@ public class DefsTest extends CleanupHel
         // can't test changing the reconciler because there is only one impl.
         
         // check the cumulative affect.
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getComment().equals(cf_def.comment);
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getRowCacheSize() == cf_def.row_cache_size;
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getKeyCacheSize() == cf_def.key_cache_size;
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getReadRepairChance() == cf_def.read_repair_chance;
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getGcGraceSeconds() == cf_def.gc_grace_seconds;
-        assert DatabaseDescriptor.getCFMetaData(cf.ksName, cf.cfName).getDefaultValidator() == UTF8Type.instance;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getComment().equals(cf_def.comment);
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getRowCacheSize() == cf_def.row_cache_size;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getKeyCacheSize() == cf_def.key_cache_size;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getReadRepairChance() == cf_def.read_repair_chance;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getGcGraceSeconds() == cf_def.gc_grace_seconds;
+        assert Schema.instance.getCFMetaData(cf.ksName, cf.cfName).getDefaultValidator() == UTF8Type.instance;
         
         // todo: we probably don't need to reset old values in the catches anymore.
         // make sure some invalid operations fail.

Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java Mon Aug 22 23:16:04 2011
@@ -23,7 +23,7 @@ package org.apache.cassandra.db;
 
 import org.apache.cassandra.AbstractSerializationsTester;
 import org.apache.cassandra.Util;
-import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.filter.QueryPath;
 import org.apache.cassandra.dht.AbstractBounds;
 import org.apache.cassandra.dht.IPartitioner;
@@ -312,7 +312,7 @@ public class SerializationsTest extends 
         private static final ColumnFamily StandardCf = ColumnFamily.create(Statics.KS, "Standard1");
         private static final ColumnFamily SuperCf = ColumnFamily.create(Statics.KS, "Super1");
         
-        private static final SuperColumn SuperCol = new SuperColumn(Statics.SC, DatabaseDescriptor.getComparator(Statics.KS, "Super1"))
+        private static final SuperColumn SuperCol = new SuperColumn(Statics.SC, Schema.instance.getComparator(Statics.KS, "Super1"))
         {{
             addColumn(new Column(bb("aaaa")));
             addColumn(new Column(bb("bbbb"), bb("bbbbb-value")));
@@ -322,7 +322,7 @@ public class SerializationsTest extends 
             addColumn(new ExpiringColumn(bb("ffff"), bb("ffff-value"), 2000, 1000));
             addColumn(new ExpiringColumn(bb("gggg"), bb("gggg-value"), 2001, 1000, 2002));
         }};
-        
+
         private static final Row StandardRow = new Row(Util.dk("key0"), Statics.StandardCf);
         private static final Row SuperRow = new Row(Util.dk("key1"), Statics.SuperCf);
         private static final Row NullRow = new Row(Util.dk("key2"), null);

Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/migration/SerializationsTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/migration/SerializationsTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/migration/SerializationsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/migration/SerializationsTest.java Mon Aug 22 23:16:04 2011
@@ -22,10 +22,9 @@ package org.apache.cassandra.db.migratio
 
 
 import org.apache.cassandra.AbstractSerializationsTester;
-import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.KSMetaData;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.io.SerDeUtils;
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.UUIDGen;
@@ -35,8 +34,6 @@ import org.junit.Test;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.nio.ByteBuffer;
 import java.util.UUID;
 
@@ -49,9 +46,9 @@ public class SerializationsTest extends 
         for (int i = 0; i < ksCount; i++)
         {
             String tableName = "Keyspace" + (i + 1);
-            KSMetaData ksm = DatabaseDescriptor.getKSMetaData(tableName);
+            KSMetaData ksm = Schema.instance.getKSMetaData(tableName);
             UUID uuid = UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress());
-            DatabaseDescriptor.clearTableDefinition(ksm, uuid);
+            Schema.instance.clearTableDefinition(ksm, uuid);
             Migration m = new AddKeyspace(ksm);
             ByteBuffer bytes = m.serialize();
             

Modified: cassandra/trunk/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/dht/BootStrapperTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/dht/BootStrapperTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/dht/BootStrapperTest.java Mon Aug 22 23:16:04 2011
@@ -26,7 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.cassandra.CleanupHelper;
-import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.commons.lang.StringUtils;
 import static org.junit.Assert.assertEquals;
 import org.junit.Test;
@@ -145,7 +145,7 @@ public class BootStrapperTest extends Cl
     public void testSourceTargetComputation() throws UnknownHostException
     {
         final int[] clusterSizes = new int[] { 1, 3, 5, 10, 100};
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             int replicationFactor = Table.open(table).getReplicationStrategy().getReplicationFactor();
             for (int clusterSize : clusterSizes)

Modified: cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java Mon Aug 22 23:16:04 2011
@@ -21,17 +21,16 @@ package org.apache.cassandra.locator;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 
+import org.apache.cassandra.config.Schema;
 import org.junit.Test;
 
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.dht.*;
@@ -81,7 +80,7 @@ public class SimpleStrategyTest extends 
     {
         TokenMetadata tmd;
         AbstractReplicationStrategy strategy;
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             tmd = new TokenMetadata();
             strategy = getStrategy(table, tmd);
@@ -136,7 +135,7 @@ public class SimpleStrategyTest extends 
         tmd.addBootstrapToken(bsToken, bootstrapEndpoint);
 
         AbstractReplicationStrategy strategy = null;
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             strategy = getStrategy(table, tmd);
 
@@ -178,7 +177,7 @@ public class SimpleStrategyTest extends 
 
     private AbstractReplicationStrategy getStrategy(String table, TokenMetadata tmd) throws ConfigurationException
     {
-        KSMetaData ksmd =  DatabaseDescriptor.getKSMetaData(table);
+        KSMetaData ksmd = Schema.instance.getKSMetaData(table);
         return AbstractReplicationStrategy.createReplicationStrategy(
                 table,
                 ksmd.strategyClass,

Modified: cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java Mon Aug 22 23:16:04 2011
@@ -24,6 +24,7 @@ import java.util.concurrent.Callable;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import org.apache.cassandra.config.Schema;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +33,6 @@ import org.apache.cassandra.CleanupHelpe
 import org.apache.cassandra.Util;
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.compaction.PrecompactedRow;
 import org.apache.cassandra.dht.IPartitioner;
@@ -152,7 +152,7 @@ public abstract class AntiEntropyService
 
         // add a row
         validator.add(new PrecompactedRow(new DecoratedKey(mid, ByteBufferUtil.bytes("inconceivable!")),
-                                          ColumnFamily.create(DatabaseDescriptor.getCFMetaData(tablename, cfname))));
+                                          ColumnFamily.create(Schema.instance.getCFMetaData(tablename, cfname))));
         validator.completeTree();
 
         // confirm that the tree was validated

Modified: cassandra/trunk/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java Mon Aug 22 23:16:04 2011
@@ -26,12 +26,12 @@ import java.util.ArrayList;
 import java.util.List;
 
 import com.google.common.collect.HashMultimap;
+import org.apache.cassandra.config.Schema;
 import org.junit.Test;
 
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.Util;
 import org.apache.cassandra.config.ConfigurationException;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.Row;
 import org.apache.cassandra.dht.IPartitioner;
@@ -72,7 +72,7 @@ public class ConsistencyLevelTest extend
 
         AbstractReplicationStrategy strategy;
 
-        for (final String table : DatabaseDescriptor.getNonSystemTables())
+        for (final String table : Schema.instance.getNonSystemTables())
         {
             strategy = getStrategy(table, tmd);
             StorageService.calculatePendingRanges(strategy, table);
@@ -178,7 +178,7 @@ public class ConsistencyLevelTest extend
 
     private AbstractReplicationStrategy getStrategy(String table, TokenMetadata tmd) throws ConfigurationException
     {
-        KSMetaData ksmd =  DatabaseDescriptor.getKSMetaData(table);
+        KSMetaData ksmd = Schema.instance.getKSMetaData(table);
         return AbstractReplicationStrategy.createReplicationStrategy(
                 table,
                 ksmd.strategyClass,

Modified: cassandra/trunk/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java?rev=1160494&r1=1160493&r2=1160494&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java Mon Aug 22 23:16:04 2011
@@ -24,6 +24,7 @@ import java.net.UnknownHostException;
 import java.util.*;
 
 import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.config.Schema;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
@@ -31,7 +32,6 @@ import com.google.common.collect.HashMul
 import com.google.common.collect.Multimap;
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.Util;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.dht.*;
 import org.apache.cassandra.gms.ApplicationState;
@@ -67,7 +67,7 @@ public class LeaveAndBootstrapTest exten
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, RING_SIZE);
 
         Map<Token, List<InetAddress>> expectedEndpoints = new HashMap<Token, List<InetAddress>>();
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             for (Token token : keyTokens)
             {
@@ -88,7 +88,7 @@ public class LeaveAndBootstrapTest exten
         assertTrue(tmd.isLeaving(hosts.get(LEAVING_NODE)));
 
         AbstractReplicationStrategy strategy;
-        for (String table : DatabaseDescriptor.getNonSystemTables())
+        for (String table : Schema.instance.getNonSystemTables())
         {
             strategy = getStrategy(table, tmd);
             for (Token token : keyTokens)
@@ -614,7 +614,7 @@ public class LeaveAndBootstrapTest exten
 
     private AbstractReplicationStrategy getStrategy(String table, TokenMetadata tmd) throws ConfigurationException
     {
-        KSMetaData ksmd =  DatabaseDescriptor.getKSMetaData(table);
+        KSMetaData ksmd = Schema.instance.getKSMetaData(table);
         return AbstractReplicationStrategy.createReplicationStrategy(
                 table,
                 ksmd.strategyClass,