You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/04/17 03:48:39 UTC
svn commit: r765829 - in
/incubator/cassandra/trunk/src/org/apache/cassandra/db:
ColumnFamilyStore.java Table.java
Author: jbellis
Date: Fri Apr 17 01:48:39 2009
New Revision: 765829
URL: http://svn.apache.org/viewvc?rev=765829&view=rev
Log:
refactor CFS constructor to not depend on DatabaseDescriptor.
patch by jbellis; reviewed by Sandeep Tata for #85
Modified:
incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
incubator/cassandra/trunk/src/org/apache/cassandra/db/Table.java
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java?rev=765829&r1=765828&r2=765829&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/ColumnFamilyStore.java Fri Apr 17 01:48:39 2009
@@ -23,6 +23,10 @@
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.MBeanRegistrationException;
+import javax.management.NotCompliantMBeanException;
+import javax.management.MalformedObjectNameException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -87,10 +91,17 @@
/* Flag indicates if a compaction is in process */
private AtomicBoolean isCompacting_ = new AtomicBoolean(false);
- ColumnFamilyStore(String table, String columnFamily) throws IOException
+ ColumnFamilyStore(String table, String columnFamily, int indexValue) throws IOException
{
table_ = table;
columnFamily_ = columnFamily;
+ fileIndexGenerator_.set(indexValue);
+ memtable_ = new AtomicReference<Memtable>(new Memtable(table_, columnFamily_));
+ binaryMemtable_ = new AtomicReference<BinaryMemtable>(new BinaryMemtable(table_, columnFamily_));
+ }
+
+ public static ColumnFamilyStore getColumnFamilyStore(String table, String columnFamily) throws IOException
+ {
/*
* Get all data files associated with old Memtables for this table.
* These files are named as follows <Table>-1.db, ..., <Table>-n.db. Get
@@ -107,8 +118,8 @@
{
String filename = file.getName();
String[] tblCfName = getTableAndColumnFamilyName(filename);
-
- if (tblCfName[0].equals(table_)
+
+ if (tblCfName[0].equals(table)
&& tblCfName[1].equals(columnFamily))
{
int index = getIndexFromFileName(filename);
@@ -118,20 +129,21 @@
}
Collections.sort(indices);
int value = (indices.size() > 0) ? (indices.get(indices.size() - 1)) : 0;
- fileIndexGenerator_.set(value);
- memtable_ = new AtomicReference<Memtable>( new Memtable(table_, columnFamily_) );
- binaryMemtable_ = new AtomicReference<BinaryMemtable>( new BinaryMemtable(table_, columnFamily_) );
-
+
+ ColumnFamilyStore cfs = new ColumnFamilyStore(table, columnFamily, value);
+
+ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
try
{
- MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- mbs.registerMBean(this, new ObjectName(
- "org.apache.cassandra.db:type=ColumnFamilyStore-" + columnFamily_));
+ mbs.registerMBean(cfs, new ObjectName(
+ "org.apache.cassandra.db:type=ColumnFamilyStore-" + table + "." + columnFamily));
}
catch (Exception e)
{
- logger_.error(LogUtil.throwableToString(e));
+ throw new RuntimeException(e);
}
+
+ return cfs;
}
void onStart() throws IOException
@@ -303,7 +315,7 @@
return columnFamily_;
}
- private String[] getTableAndColumnFamilyName(String filename)
+ private static String[] getTableAndColumnFamilyName(String filename)
{
StringTokenizer st = new StringTokenizer(filename, "-");
String[] values = new String[2];
Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/Table.java?rev=765829&r1=765828&r2=765829&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/Table.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/Table.java Fri Apr 17 01:48:39 2009
@@ -588,7 +588,7 @@
Set<String> columnFamilies = tableMetadata_.getColumnFamilies();
for ( String columnFamily : columnFamilies )
{
- columnFamilyStores_.put( columnFamily, new ColumnFamilyStore(table, columnFamily) );
+ columnFamilyStores_.put(columnFamily, ColumnFamilyStore.getColumnFamilyStore(table, columnFamily));
}
}
catch ( IOException ex )