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 2011/04/14 23:33:46 UTC
svn commit: r1092523 - in /cassandra/branches/cassandra-0.8: ./
src/java/org/apache/cassandra/cache/ src/java/org/apache/cassandra/cli/
src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/io/
src/java/org/apache/cassandra/io/sstable/ test/u...
Author: jbellis
Date: Thu Apr 14 21:33:45 2011
New Revision: 1092523
URL: http://svn.apache.org/viewvc?rev=1092523&view=rev
Log:
madeCompactionInfo.getTaskType return an enum
patch by nickmbailey; reviewed by jbellis for CASSANDRA-2482
Added:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionType.java
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cache/AutoSavingCache.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CompactionManager.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionInfo.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionIterator.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Apr 14 21:33:45 2011
@@ -23,6 +23,7 @@
* multithreaded compaction (CASSANDRA-2191)
* compaction throttling (CASSANDRA-2156)
* cli no longer divides read_repair_chance by 100 (CASSANDRA-2458)
+ * made CompactionInfo.getTaskType return an enum (CASSANDRA-2482)
0.7.5
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cache/AutoSavingCache.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cache/AutoSavingCache.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cache/AutoSavingCache.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cache/AutoSavingCache.java Thu Apr 14 21:33:45 2011
@@ -36,6 +36,7 @@ import org.apache.cassandra.db.ColumnFam
import org.apache.cassandra.db.CompactionManager;
import org.apache.cassandra.db.DecoratedKey;
import org.apache.cassandra.io.CompactionInfo;
+import org.apache.cassandra.io.CompactionType;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.service.StorageService;
@@ -203,9 +204,18 @@ public abstract class AutoSavingCache<K,
bytes += translateKey(key).remaining();
// an approximation -- the keyset can change while saving
estimatedTotalBytes = bytes;
+ CompactionType type;
+
+ if (cacheType.equals(ColumnFamilyStore.CacheType.KEY_CACHE_TYPE))
+ type = CompactionType.KEY_CACHE_SAVE;
+ else if (cacheType.equals(ColumnFamilyStore.CacheType.ROW_CACHE_TYPE))
+ type = CompactionType.ROW_CACHE_SAVE;
+ else
+ type = CompactionType.UNKNOWN;
+
info = new CompactionInfo(ksname,
cfname,
- "Save " + getCachePath().getName(),
+ type,
0,
estimatedTotalBytes);
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Thu Apr 14 21:33:45 2011
@@ -36,6 +36,7 @@ import org.apache.cassandra.db.ColumnFam
import org.apache.cassandra.db.CompactionManagerMBean;
import org.apache.cassandra.db.marshal.*;
import org.apache.cassandra.io.CompactionInfo;
+import org.apache.cassandra.io.CompactionType;
import org.apache.cassandra.locator.SimpleSnitch;
import org.apache.cassandra.service.StorageProxy;
import org.apache.cassandra.thrift.*;
@@ -1638,7 +1639,7 @@ public class CliClient
for (CompactionInfo info : compactionManagerMBean.getCompactions())
{
// if ongoing compaction type is index build
- if (!info.getTaskType().contains("index build"))
+ if (info.getTaskType() != CompactionType.INDEX_BUILD)
continue;
sessionState.out.printf("%nCurrently building index %s, completed %d of %d bytes.%n",
info.getColumnFamily(),
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CompactionManager.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CompactionManager.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CompactionManager.java Thu Apr 14 21:33:45 2011
@@ -28,7 +28,6 @@ import java.security.MessageDigest;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import javax.management.MBeanServer;
@@ -529,7 +528,9 @@ public class CompactionManager implement
// so in our single-threaded compaction world this is a valid way of determining if we're compacting
// all the sstables (that existed when we started)
boolean major = cfs.isCompleteSSTables(sstables);
- String type = major ? "Major" : "Minor";
+ CompactionType type = major
+ ? CompactionType.MAJOR
+ : CompactionType.MINOR;
logger.info("Compacting {}: {}", type, sstables);
long startTime = System.currentTimeMillis();
@@ -1147,7 +1148,7 @@ public class CompactionManager implement
{
public ValidationCompactionIterator(ColumnFamilyStore cfs, Range range) throws IOException
{
- super("Validation",
+ super(CompactionType.VALIDATION,
getCollatingIterator(cfs.getSSTables(), range),
new CompactionController(cfs, cfs.getSSTables(), true, getDefaultGcBefore(cfs), false));
}
@@ -1348,7 +1349,7 @@ public class CompactionManager implement
{
return new CompactionInfo(sstable.descriptor.ksname,
sstable.descriptor.cfname,
- "Cleanup of " + sstable.getColumnFamilyName(),
+ CompactionType.CLEANUP,
scanner.getFilePointer(),
scanner.getFileLength());
}
@@ -1375,7 +1376,7 @@ public class CompactionManager implement
{
return new CompactionInfo(sstable.descriptor.ksname,
sstable.descriptor.cfname,
- "Scrub " + sstable,
+ CompactionType.SCRUB,
dataFile.getFilePointer(),
dataFile.length());
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java Thu Apr 14 21:33:45 2011
@@ -40,6 +40,7 @@ import org.apache.cassandra.db.filter.Qu
import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.dht.LocalToken;
import org.apache.cassandra.io.CompactionInfo;
+import org.apache.cassandra.io.CompactionType;
import org.apache.cassandra.io.sstable.ReducingKeyIterator;
import org.apache.cassandra.io.sstable.SSTableDeletingReference;
import org.apache.cassandra.io.sstable.SSTableReader;
@@ -614,7 +615,7 @@ public class Table
{
return new CompactionInfo(cfs.table.name,
cfs.columnFamily,
- String.format("Secondary index build %s", cfs.columnFamily),
+ CompactionType.INDEX_BUILD,
iter.getTotalBytes(),
iter.getBytesRead());
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionInfo.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionInfo.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionInfo.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionInfo.java Thu Apr 14 21:33:45 2011
@@ -23,13 +23,15 @@ import java.io.Serializable;
/** Implements serializable to allow structured info to be returned via JMX. */
public final class CompactionInfo implements Serializable
{
+
+
private final String ksname;
private final String cfname;
- private final String tasktype;
+ private final CompactionType tasktype;
private final long bytesComplete;
private final long totalBytes;
- public CompactionInfo(String ksname, String cfname, String tasktype, long bytesComplete, long totalBytes)
+ public CompactionInfo(String ksname, String cfname, CompactionType tasktype, long bytesComplete, long totalBytes)
{
this.ksname = ksname;
this.cfname = cfname;
@@ -64,7 +66,7 @@ public final class CompactionInfo implem
return totalBytes;
}
- public String getTaskType()
+ public CompactionType getTaskType()
{
return tasktype;
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionIterator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionIterator.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionIterator.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionIterator.java Thu Apr 14 21:33:45 2011
@@ -24,18 +24,14 @@ package org.apache.cassandra.io;
import java.io.Closeable;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import org.apache.commons.collections.iterators.CollatingIterator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.db.ColumnFamily;
-import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.CompactionManager;
import org.apache.cassandra.io.sstable.SSTableIdentityIterator;
import org.apache.cassandra.io.sstable.SSTableReader;
@@ -53,7 +49,7 @@ implements Closeable, CompactionInfo.Hol
public static final int FILE_BUFFER_SIZE = 1024 * 1024;
protected final List<SSTableIdentityIterator> rows = new ArrayList<SSTableIdentityIterator>();
- protected final String type;
+ protected final CompactionType type;
protected final CompactionController controller;
private long totalBytes;
@@ -68,13 +64,13 @@ implements Closeable, CompactionInfo.Hol
// current target bytes to compact per millisecond
private int targetBytesPerMS = -1;
- public CompactionIterator(String type, Iterable<SSTableReader> sstables, CompactionController controller) throws IOException
+ public CompactionIterator(CompactionType type, Iterable<SSTableReader> sstables, CompactionController controller) throws IOException
{
this(type, getCollatingIterator(sstables), controller);
}
@SuppressWarnings("unchecked")
- protected CompactionIterator(String type, Iterator iter, CompactionController controller)
+ protected CompactionIterator(CompactionType type, Iterator iter, CompactionController controller)
{
super(iter);
this.type = type;
Added: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionType.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionType.java?rev=1092523&view=auto
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionType.java (added)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/CompactionType.java Thu Apr 14 21:33:45 2011
@@ -0,0 +1,27 @@
+package org.apache.cassandra.io;
+
+public enum CompactionType
+{
+ MAJOR("Major"),
+ MINOR("Minor"),
+ VALIDATION("Validation"),
+ KEY_CACHE_SAVE("Key cache save"),
+ ROW_CACHE_SAVE("Row cache save"),
+ CLEANUP("Cleanup"),
+ SCRUB("Scrub"),
+ INDEX_BUILD("Secondary index build"),
+ SSTABLE_BUILD("SSTable build"),
+ UNKNOWN("Unkown compaction type");
+
+ private final String type;
+
+ CompactionType(String type)
+ {
+ this.type = type;
+ }
+
+ public String toString()
+ {
+ return type;
+ }
+}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Thu Apr 14 21:33:45 2011
@@ -28,6 +28,7 @@ import java.util.Set;
import com.google.common.collect.Sets;
+import org.apache.cassandra.io.*;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,13 +39,7 @@ import org.apache.cassandra.db.ColumnFam
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.DecoratedKey;
import org.apache.cassandra.db.Table;
-import org.apache.cassandra.db.marshal.AbstractCommutativeType;
import org.apache.cassandra.dht.IPartitioner;
-import org.apache.cassandra.io.AbstractCompactedRow;
-import org.apache.cassandra.io.CompactionController;
-import org.apache.cassandra.io.CompactionInfo;
-import org.apache.cassandra.io.LazilyCompactedRow;
-import org.apache.cassandra.io.PrecompactedRow;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
import org.apache.cassandra.io.util.FileMark;
import org.apache.cassandra.io.util.FileUtils;
@@ -271,7 +266,7 @@ public class SSTableWriter extends SSTab
// both file offsets are still valid post-close
return new CompactionInfo(desc.ksname,
desc.cfname,
- "SSTable rebuild",
+ CompactionType.SSTABLE_BUILD,
indexer.dfile.getFilePointer(),
indexer.dfile.length());
}
Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java?rev=1092523&r1=1092522&r2=1092523&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java (original)
+++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java Thu Apr 14 21:33:45 2011
@@ -27,9 +27,7 @@ import java.io.*;
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.util.HashSet;
import java.util.Collection;
-import java.util.Set;
import java.util.concurrent.ExecutionException;
import org.apache.cassandra.CleanupHelper;
@@ -309,7 +307,7 @@ public class LazilyCompactedRowTest exte
{
public LazyCompactionIterator(Iterable<SSTableReader> sstables, CompactionController controller) throws IOException
{
- super("Lazy", sstables, controller);
+ super(CompactionType.UNKNOWN, sstables, controller);
}
@Override
@@ -323,7 +321,7 @@ public class LazilyCompactedRowTest exte
{
public PreCompactingIterator(Iterable<SSTableReader> sstables, CompactionController controller) throws IOException
{
- super("Pre", sstables, controller);
+ super(CompactionType.UNKNOWN, sstables, controller);
}
@Override