Author: gdusbabek
Date: Tue Sep 28 05:40:46 2010
New Revision: 1002022
URL: http://svn.apache.org/viewvc?rev=1002022&view=rev
Log:
do not intialize table instances when loading schema. complain less loudly when
there is a missing sstable component. patch by gdusbabek, reviewed by stuhood.
CASSANDRA-1542
Modified:
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
Modified:
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1002022&r1=1002021&r2=1002022&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Tue Sep 28 05:40:46 2010
@@ -398,6 +398,7 @@ public class DatabaseDescriptor
return conf.dynamic_snitch ? new DynamicEndpointSnitch(snitch) :
snitch;
}
+ /** load keyspace (table) definitions, but do not initialize the table
instances. */
public static void loadSchemas() throws IOException
{
// we can load tables from local storage if a version is set in the
system table and that acutally maps to
@@ -459,8 +460,6 @@ public class DatabaseDescriptor
}
}
DatabaseDescriptor.setTableDefinition(def, uuid);
- // this part creates storage and jmx objects.
- Table.open(def.name);
}
// happens when someone manually deletes all tables and restarts.
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1002022&r1=1002021&r2=1002022&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Tue
Sep 28 05:40:46 2010
@@ -19,6 +19,7 @@
package org.apache.cassandra.db;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOError;
import java.io.IOException;
@@ -155,6 +156,11 @@ public class ColumnFamilyStore implement
{
sstable = SSTableReader.open(sstableFiles.getKey(),
sstableFiles.getValue(), metadata, this.partitioner);
}
+ catch (FileNotFoundException ex)
+ {
+ logger.error("Missing sstable component in " + sstableFiles +
"; skipped because of " + ex.getMessage());
+ continue;
+ }
catch (IOException ex)
{
logger.error("Corrupt sstable " + sstableFiles + "; skipped",
ex);
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=1002022&r1=1002021&r2=1002022&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
Tue Sep 28 05:40:46 2010
@@ -104,6 +104,7 @@ public abstract class AbstractCassandraD
System.exit(100);
}
+ // load keyspace descriptions.
try
{
DatabaseDescriptor.loadSchemas();
@@ -114,6 +115,7 @@ public abstract class AbstractCassandraD
System.exit(100);
}
+ // clean up debris.
for (String table : DatabaseDescriptor.getTables())
{
for (CFMetaData cfm :
DatabaseDescriptor.getTableMetaData(table).values())