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