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/09/04 22:21:41 UTC

svn commit: r1380850 - /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java

Author: mbautin
Date: Tue Sep  4 20:21:40 2012
New Revision: 1380850

URL: http://svn.apache.org/viewvc?rev=1380850&view=rev
Log:
[jira] [HBASE-6705] [89-fb] Refactor duplicate CF parsing code in ThriftServerRunner

Author: mbautin

Summary: We have a lot of repetitive code conditional on famAndQf.length <= 1. Refactoring that into a function.

Test Plan: Unit tests

Reviewers: kannan, aaiyer, kranganathan

Reviewed By: aaiyer

Differential Revision: https://reviews.facebook.net/D5091

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java?rev=1380850&r1=1380849&r2=1380850&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java Tue Sep  4 20:21:40 2012
@@ -630,10 +630,7 @@ public class ThriftServerRunner implemen
       byte [][] famAndQf = KeyValue.parseColumn(getBytes(column));
       byte[] tableNameBytes = getBytes(tableName);
       byte[] rowBytes = getBytes(row);
-      if(famAndQf.length == 1) {
-        return get(tableNameBytes, rowBytes, famAndQf[0], HConstants.EMPTY_BYTE_ARRAY);
-      }
-      return get(tableNameBytes, rowBytes, famAndQf[0], famAndQf[1]);
+      return get(tableNameBytes, rowBytes, famAndQf[0], getQualifier(famAndQf));
     }
 
     public List<TCell> get(byte [] tableName, byte [] row, byte [] family,
@@ -659,7 +656,7 @@ public class ThriftServerRunner implemen
         ByteBuffer column, int numVersions) throws IOError {
       byte [][] famAndQf = KeyValue.parseColumn(getBytes(column));
       return getVer(getBytes(tableName), getBytes(row), famAndQf[0],
-          famAndQf.length <= 1 ? HConstants.EMPTY_BYTE_ARRAY : famAndQf[1], numVersions);
+          getQualifier(famAndQf), numVersions);
     }
 
     public List<TCell> getVer(byte [] tableName, byte [] row, byte [] family,
@@ -682,7 +679,7 @@ public class ThriftServerRunner implemen
         ByteBuffer column, long timestamp, int numVersions) throws IOError {
       byte [][] famAndQf = KeyValue.parseColumn(getBytes(column));
       return getVerTs(getBytes(tableName), getBytes(row),
-          famAndQf[0], famAndQf.length <= 1 ? HConstants.EMPTY_BYTE_ARRAY : famAndQf[1],
+          famAndQf[0], getQualifier(famAndQf),
           timestamp, numVersions);
     }
 
@@ -952,12 +949,7 @@ public class ThriftServerRunner implemen
             if (put == null) {
               put = new Put(rowBytes, timestamp, null);
             }
-            if (famAndQf.length == 1) {
-              put.add(famAndQf[0], HConstants.EMPTY_BYTE_ARRAY, effectiveTimestamp,
-                  getBytes(m.value));
-            } else {
-              put.add(famAndQf[0], famAndQf[1], effectiveTimestamp, getBytes(m.value));
-            }
+            put.add(famAndQf[0], getQualifier(famAndQf), effectiveTimestamp, getBytes(m.value));
           }
 
           if (firstMutation) {
@@ -1030,12 +1022,8 @@ public class ThriftServerRunner implemen
             if (put == null) {
               put = new Put(row, timestamp, null);
             }
-            if(famAndQf.length == 1) {
-              put.add(famAndQf[0], HConstants.EMPTY_BYTE_ARRAY, effectiveTimestamp,
-                  getBytes(m.value));
-            } else {
-              put.add(famAndQf[0], famAndQf[1], effectiveTimestamp, getBytes(m.value));
-            }
+            put.add(famAndQf[0], getQualifier(famAndQf), effectiveTimestamp,
+                getBytes(m.value));
           }
           if (firstMutation) {
             // Remember the first mutation's writeToWAL status.
@@ -1127,11 +1115,7 @@ public class ThriftServerRunner implemen
             }
           } else {
             byte[] valueBytes = getBytes(m.value);
-            if (famAndQf.length == 1) {
-              put.add(famAndQf[0], HConstants.EMPTY_BYTE_ARRAY, effectiveTimestamp, valueBytes);
-            } else {
-              put.add(famAndQf[0], famAndQf[1], effectiveTimestamp, valueBytes);
-            }
+            put.add(famAndQf[0], getQualifier(famAndQf), effectiveTimestamp, valueBytes);
           }
         }
         byte[][] famAndQfCheck = KeyValue.parseColumn(getBytes(columnCheck));
@@ -1144,13 +1128,11 @@ public class ThriftServerRunner implemen
         }
         if (!delete.isEmpty()) {
           return table.checkAndDelete(rowBytes, famAndQfCheck[0],
-                  famAndQfCheck.length != 1 ? famAndQfCheck[1]
-                      : HConstants.EMPTY_BYTE_ARRAY, valueCheckBytes, delete);
+                  getQualifier(famAndQfCheck), valueCheckBytes, delete);
         }
         if (!put.isEmpty()) {
           return table.checkAndPut(rowBytes, famAndQfCheck[0],
-                  famAndQfCheck.length != 1 ? famAndQfCheck[1]
-                      : HConstants.EMPTY_BYTE_ARRAY, valueCheckBytes, put);
+                  getQualifier(famAndQfCheck), valueCheckBytes, put);
         }
         throw new IllegalArgument(
             "Thrift CheckAndMutate call must do either put or delete.");
@@ -1167,7 +1149,7 @@ public class ThriftServerRunner implemen
         long amount) throws IOError, IllegalArgument, TException {
       byte [][] famAndQf = KeyValue.parseColumn(getBytes(column));
       return atomicIncrement(getBytes(tableName), getBytes(row), famAndQf[0],
-          famAndQf.length <= 1 ? HConstants.EMPTY_BYTE_ARRAY : famAndQf[1], amount);
+          getQualifier(famAndQf), amount);
     }
 
     public long atomicIncrement(byte [] tableName, byte [] row, byte [] family,
@@ -1509,5 +1491,12 @@ public class ThriftServerRunner implemen
     }
     return new IOError(e.getMessage(), 0);
   }
-  
+
+  private static byte[] getQualifier(byte[][] familyAndQualifier) {
+    if (familyAndQualifier.length > 1) {
+      return familyAndQualifier[1];
+    }
+    return HConstants.EMPTY_BYTE_ARRAY;
+  }
+
 }