You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/05/01 20:18:22 UTC

svn commit: r1591722 - /hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java

Author: liyin
Date: Thu May  1 18:18:22 2014
New Revision: 1591722

URL: http://svn.apache.org/r1591722
Log:
[master] Remove most of TestHeapSize

Author: elliott

Summary: Most of TestHeapSize is useless.  I just left the parts that I thought were actually used a lot in memory accounting.

Test Plan: mvn clean test -Dtest=TestHeapSize

Reviewers: adela

Reviewed By: adela

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D1300578

Task ID: 4222728

Modified:
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java?rev=1591722&r1=1591721&r2=1591722&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java Thu May  1 18:18:22 2014
@@ -20,192 +20,22 @@
 
 package org.apache.hadoop.hbase.io;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.TreeMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentSkipListMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
 import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;
 import org.apache.hadoop.hbase.io.hfile.CachedBlock;
-import org.apache.hadoop.hbase.io.hfile.LruBlockCache;
-import org.apache.hadoop.hbase.regionserver.HRegion;
-import org.apache.hadoop.hbase.regionserver.MemStore;
-import org.apache.hadoop.hbase.regionserver.Store;
-import org.apache.hadoop.hbase.regionserver.metrics.SchemaConfigured;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.ClassSize;
 
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
 /**
  * Testing the sizing that HeapSize offers and compares to the size given by
  * ClassSize.
  */
 public class TestHeapSize extends TestCase {
-  static final Log LOG = LogFactory.getLog(TestHeapSize.class);
-  // List of classes implementing HeapSize
-  // BatchOperation, BatchUpdate, BlockIndex, Entry, Entry<K,V>, HStoreKey
-  // KeyValue, LruBlockCache, LruHashMap<K,V>, Put, HLogKey
-
-  /**
-   * Test our hard-coded sizing of native java objects
-   */
-  public void testNativeSizes() throws IOException {
-    Class<?> cl = null;
-    long expected = 0L;
-    long actual = 0L;
-
-    // ArrayList
-    cl = ArrayList.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.ARRAYLIST;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // ByteBuffer
-    cl = ByteBuffer.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.BYTE_BUFFER;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // Integer
-    cl = Integer.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.INTEGER;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // Map.Entry
-    // Interface is public, all others are not.  Hard to size via ClassSize
-//    cl = Map.Entry.class;
-//    expected = ClassSize.estimateBase(cl, false);
-//    actual = ClassSize.MAP_ENTRY;
-//    if(expected != actual) {
-//      ClassSize.estimateBase(cl, true);
-//      assertEquals(expected, actual);
-//    }
-
-    // Object
-    cl = Object.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.OBJECT;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // TreeMap
-    cl = TreeMap.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.TREEMAP;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // String
-    cl = String.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.STRING;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // ConcurrentHashMap
-    cl = ConcurrentHashMap.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.CONCURRENT_HASHMAP;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // ConcurrentSkipListMap
-    cl = ConcurrentSkipListMap.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.CONCURRENT_SKIPLISTMAP;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // ReentrantReadWriteLock
-    cl = ReentrantReadWriteLock.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.REENTRANT_LOCK;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // AtomicLong
-    cl = AtomicLong.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.ATOMIC_LONG;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // AtomicInteger
-    cl = AtomicInteger.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.ATOMIC_INTEGER;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // AtomicBoolean
-    cl = AtomicBoolean.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.ATOMIC_BOOLEAN;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // CopyOnWriteArraySet
-    cl = CopyOnWriteArraySet.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.COPYONWRITE_ARRAYSET;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // CopyOnWriteArrayList
-    cl = CopyOnWriteArrayList.class;
-    expected = ClassSize.estimateBase(cl, false);
-    actual = ClassSize.COPYONWRITE_ARRAYLIST;
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-
-  }
-
   /**
    * Testing the classes that implements HeapSize and are a part of 0.20.
    * Some are not tested here for example BlockIndex which is tested in
@@ -239,15 +69,6 @@ public class TestHeapSize extends TestCa
       assertEquals(expected, actual);
     }
 
-    //LruBlockCache Overhead
-    cl = LruBlockCache.class;
-    actual = LruBlockCache.CACHE_FIXED_OVERHEAD;
-    expected = ClassSize.estimateBase(cl, false);
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
     // CachedBlock Fixed Overhead
     // We really need "deep" sizing but ClassSize does not do this.
     // Perhaps we should do all these more in this style....
@@ -263,61 +84,6 @@ public class TestHeapSize extends TestCa
       assertEquals(expected, actual);
     }
 
-    // MemStore Overhead
-    cl = MemStore.class;
-    actual = MemStore.FIXED_OVERHEAD;
-    expected = ClassSize.estimateBase(cl, false);
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // MemStore Deep Overhead
-    actual = MemStore.DEEP_OVERHEAD;
-    expected = ClassSize.estimateBase(cl, false);
-    expected += ClassSize.estimateBase(ReentrantReadWriteLock.class, false);
-    expected += ClassSize.estimateBase(AtomicLong.class, false);
-    expected += ClassSize.estimateBase(ConcurrentSkipListMap.class, false);
-    expected += ClassSize.estimateBase(ConcurrentSkipListMap.class, false);
-    expected += ClassSize.estimateBase(CopyOnWriteArraySet.class, false);
-    expected += ClassSize.estimateBase(CopyOnWriteArrayList.class, false);
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      ClassSize.estimateBase(ReentrantReadWriteLock.class, true);
-      ClassSize.estimateBase(AtomicLong.class, true);
-      ClassSize.estimateBase(ConcurrentSkipListMap.class, true);
-      ClassSize.estimateBase(CopyOnWriteArraySet.class, true);
-      ClassSize.estimateBase(CopyOnWriteArrayList.class, true);
-      assertEquals(expected, actual);
-    }
-
-    // SchemaConfigured
-    cl = SchemaConfigured.class;
-    actual = new SchemaConfigured(null, "myTable", "myCF").heapSize();
-    expected = ClassSize.estimateBase(cl, false);
-    if (expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // Store Overhead
-    cl = Store.class;
-    actual = Store.FIXED_OVERHEAD;
-    expected = ClassSize.estimateBase(cl, false);
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
-    // Region Overhead
-    cl = HRegion.class;
-    actual = HRegion.FIXED_OVERHEAD;
-    expected = ClassSize.estimateBase(cl, false);
-    if(expected != actual) {
-      ClassSize.estimateBase(cl, true);
-      assertEquals(expected, actual);
-    }
-
     // Block cache key overhead. Only tests fixed overhead as estimating heap
     // size of strings is hard.
     cl = BlockCacheKey.class;