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