You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/07/12 02:09:22 UTC

svn commit: r1360484 - in /hbase/branches/0.89-fb: lib/native/Linux-amd64-64/ src/main/java/org/apache/hadoop/hbase/ src/main/java/org/apache/hadoop/hbase/io/hfile/

Author: mbautin
Date: Thu Jul 12 00:09:21 2012
New Revision: 1360484

URL: http://svn.apache.org/viewvc?rev=1360484&view=rev
Log:
[HBASE-3691] Snappy Hadoop integration

Summary: add Snappy compression algorithm to HBase

Reviewers: mbautin, pkhemani

Reviewed By: mbautin

Added:
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.a
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.la
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.lai
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.a
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1   (with props)
    hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3   (with props)
Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.a
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.a?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.a (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.a Thu Jul 12 00:09:21 2012 differ

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.la
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.la?rev=1360484&view=auto
==============================================================================
--- hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.la (added)
+++ hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.la Thu Jul 12 00:09:21 2012
@@ -0,0 +1,35 @@
+# libhadoopsnappy.la - a libtool library file
+# Generated by ltmain.sh - GNU libtool 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libhadoopsnappy.so.0'
+
+# Names of this library.
+library_names='libhadoopsnappy.so.0.0.1 libhadoopsnappy.so.0 libhadoopsnappy.so'
+
+# The name of the static archive.
+old_library='libhadoopsnappy.a'
+
+# Libraries that this one depends upon.
+dependency_libs=' -L/usr/local/jdk-6u14-64/jre/lib/amd64/server -L/data/users/feifei/titan-git-svn/VENDOR/hadoop-0.20/src/native/lib/snappy/lib -ljvm -ldl'
+
+# Version information for libhadoopsnappy.
+current=0
+age=0
+revision=1
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib'

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.lai
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.lai?rev=1360484&view=auto
==============================================================================
--- hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.lai (added)
+++ hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.lai Thu Jul 12 00:09:21 2012
@@ -0,0 +1,35 @@
+# libhadoopsnappy.la - a libtool library file
+# Generated by ltmain.sh - GNU libtool 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libhadoopsnappy.so.0'
+
+# Names of this library.
+library_names='libhadoopsnappy.so.0.0.1 libhadoopsnappy.so.0 libhadoopsnappy.so'
+
+# The name of the static archive.
+old_library='libhadoopsnappy.a'
+
+# Libraries that this one depends upon.
+dependency_libs=' -L/usr/local/jdk-6u14-64/jre/lib/amd64/server -L/data/users/feifei/titan-git-svn/VENDOR/hadoop-0.20/src/native/lib/snappy/lib -ljvm -ldl'
+
+# Version information for libhadoopsnappy.
+current=0
+age=0
+revision=1
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib'

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0 (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0 Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1 (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1 Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libhadoopsnappy.so.0.0.1
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.a
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.a?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.a (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.a Thu Jul 12 00:09:21 2012 differ

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la?rev=1360484&view=auto
==============================================================================
--- hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la (added)
+++ hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la Thu Jul 12 00:09:21 2012
@@ -0,0 +1,41 @@
+# libsnappy.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libsnappy.so.1'
+
+# Names of this library.
+library_names='libsnappy.so.1.1.3 libsnappy.so.1 libsnappy.so'
+
+# The name of the static archive.
+old_library='libsnappy.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=''
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libsnappy.
+current=2
+age=1
+revision=3
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib'

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.la
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1 (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1 Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1
------------------------------------------------------------------------------
    svn:executable = *

Added: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3?rev=1360484&view=auto
==============================================================================
Files hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3 (added) and hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3 Thu Jul 12 00:09:21 2012 differ

Propchange: hbase/branches/0.89-fb/lib/native/Linux-amd64-64/libsnappy.so.1.1.3
------------------------------------------------------------------------------
    svn:executable = *

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java?rev=1360484&r1=1360483&r2=1360484&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java Thu Jul 12 00:09:21 2012
@@ -525,12 +525,7 @@ public class HColumnDescriptor implement
    * @return this (for chained invocation)
    */
   public HColumnDescriptor setCompressionType(Compression.Algorithm type) {
-    String compressionType;
-    switch (type) {
-      case LZO: compressionType = "LZO"; break;
-      case GZ: compressionType = "GZ"; break;
-      default: compressionType = "NONE"; break;
-    }
+    String compressionType = type.getName().toUpperCase();
     return setValue(COMPRESSION, compressionType);
   }
 

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java?rev=1360484&r1=1360483&r2=1360484&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java Thu Jul 12 00:09:21 2012
@@ -34,6 +34,7 @@ import org.apache.hadoop.io.compress.Com
 import org.apache.hadoop.io.compress.Compressor;
 import org.apache.hadoop.io.compress.Decompressor;
 import org.apache.hadoop.io.compress.GzipCodec;
+import org.apache.hadoop.io.compress.SnappyCodec;
 import org.apache.hadoop.io.compress.DefaultCodec;
 import org.apache.hadoop.util.ReflectionUtils;
 
@@ -74,7 +75,7 @@ public final class Compression {
    * Compression algorithms.
    */
   public static enum Algorithm {
-    LZO("lzo") {
+	LZO("lzo") {
       // Use base type to avoid compile-time dependencies.
       private transient CompressionCodec lzoCodec;
 
@@ -106,7 +107,17 @@ public final class Compression {
         return codec;
       }
     },
-
+    SNAPPY("snappy") {
+    	private transient CompressionCodec snappyCodec;
+	    @Override
+	    CompressionCodec getCodec(Configuration conf) {
+	      if (snappyCodec == null) {
+	        snappyCodec = new SnappyCodec();
+	        ((Configurable) snappyCodec).setConf(new Configuration(conf));
+	      }
+	      return (CompressionCodec) snappyCodec;
+	    }
+    },
     NONE("none") {
       @Override
       DefaultCodec getCodec(Configuration conf) {