diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index b51e801..ac9db75 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -4217,8 +4217,8 @@ private void validateMobColumnFamily(TableName tableName, byte[] columnFamily) HTableDescriptor htd = getTableDescriptor(tableName); HColumnDescriptor family = htd.getFamily(columnFamily); if (family == null || !family.isMobEnabled()) { - throw new IllegalArgumentException("Column family " + columnFamily - + " is not a mob column family"); + throw new IllegalArgumentException("Column family " + Bytes.toString(columnFamily) + + " is not a mob column family"); } } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java index 0de2762..5bded37 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java @@ -3013,9 +3013,7 @@ public static void mergeDelimitedFrom(Message.Builder builder, InputStream in) // This used to be builder.mergeDelimitedFrom(in); // but is replaced to allow us to bump the protobuf size limit. final int firstByte = in.read(); - if (firstByte == -1) { - // bail out. (was return false;) - } else { + if (firstByte != -1) { final int size = CodedInputStream.readRawVarint32(firstByte, in); final InputStream limitedInput = new LimitInputStream(in, size); final CodedInputStream codedInput = CodedInputStream.newInstance(limitedInput); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.java index 8c9bc2b..72ac792 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.java @@ -35,6 +35,8 @@ import org.apache.hadoop.hbase.mob.MobConstants; import org.apache.hadoop.hbase.mob.MobUtils; +import com.google.protobuf.ServiceException; + /** * The Class ExpiredMobFileCleanerChore for running cleaner regularly to remove the expired * mob files. @@ -81,8 +83,12 @@ protected void chore() { cleaner.cleanExpiredMobFiles(htd.getTableName().getNameAsString(), hcd); } catch (LockTimeoutException e) { LOG.info("Fail to acquire the lock because of timeout, maybe a" - + " MobFileCompactor is running", e); - } catch (Exception e) { + + " MobCompactor is running", e); + } catch (ServiceException e) { + LOG.error( + "Fail to clean the expired mob files for the column " + hcd.getNameAsString() + + " in the table " + htd.getNameAsString(), e); + } catch (IOException e) { LOG.error( "Fail to clean the expired mob files for the column " + hcd.getNameAsString() + " in the table " + htd.getNameAsString(), e); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/mapreduce/SweepJob.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/mapreduce/SweepJob.java index 3a06ad8..b0c3956 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/mapreduce/SweepJob.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/mapreduce/SweepJob.java @@ -96,7 +96,7 @@ public static final String WORKING_FILES_DIR_KEY = "mob.sweep.job.files.dir"; //the MOB_SWEEP_JOB_DELAY is ONE_DAY by default. Its value is only changed when testing. public static final String MOB_SWEEP_JOB_DELAY = "hbase.mob.sweep.job.delay"; - protected static long ONE_DAY = 24 * 60 * 60 * 1000; + protected static final long ONE_DAY = 24 * 60 * 60 * 1000; private long compactionStartTime = EnvironmentEdgeManager.currentTime(); public final static String CREDENTIALS_LOCATION = "credentials_location"; private CacheConfig cacheConfig; @@ -461,7 +461,7 @@ private void cleanup(Job job, TableName tn, String familyName) { /** * A result with index. */ - private class IndexedResult implements Comparable { + private static class IndexedResult implements Comparable { private int index; private String value; @@ -516,7 +516,7 @@ public int hashCode() { * It merges and sort the readers in different sequence files as one where * the results are read in order. */ - private class MergeSortReader { + private static class MergeSortReader { private List readers = new ArrayList(); private PriorityQueue results = new PriorityQueue(); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HMobStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HMobStore.java index ad0c4d7..039d3de 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HMobStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HMobStore.java @@ -26,6 +26,7 @@ import java.util.NavigableSet; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -86,15 +87,15 @@ private MobCacheConfig mobCacheConfig; private Path homePath; private Path mobFamilyPath; - private volatile long cellsCountCompactedToMob = 0; - private volatile long cellsCountCompactedFromMob = 0; - private volatile long cellsSizeCompactedToMob = 0; - private volatile long cellsSizeCompactedFromMob = 0; - private volatile long mobFlushCount = 0; - private volatile long mobFlushedCellsCount = 0; - private volatile long mobFlushedCellsSize = 0; - private volatile long mobScanCellsCount = 0; - private volatile long mobScanCellsSize = 0; + private final AtomicLong cellsCountCompactedToMob = new AtomicLong(0); + private final AtomicLong cellsCountCompactedFromMob = new AtomicLong(0); + private final AtomicLong cellsSizeCompactedToMob = new AtomicLong(0); + private final AtomicLong cellsSizeCompactedFromMob = new AtomicLong(0); + private final AtomicLong mobFlushCount = new AtomicLong(0); + private final AtomicLong mobFlushedCellsCount = new AtomicLong(0); + private final AtomicLong mobFlushedCellsSize = new AtomicLong(0); + private final AtomicLong mobScanCellsCount = new AtomicLong(0); + private final AtomicLong mobScanCellsSize = new AtomicLong(0); private HColumnDescriptor family; private TableLockManager tableLockManager; private TableName tableLockName; @@ -512,74 +513,74 @@ public Path getPath() { } public void updateCellsCountCompactedToMob(long count) { - cellsCountCompactedToMob += count; + cellsCountCompactedToMob.addAndGet(count); } public long getCellsCountCompactedToMob() { - return cellsCountCompactedToMob; + return cellsCountCompactedToMob.longValue(); } public void updateCellsCountCompactedFromMob(long count) { - cellsCountCompactedFromMob += count; + cellsCountCompactedFromMob.addAndGet(count); } public long getCellsCountCompactedFromMob() { - return cellsCountCompactedFromMob; + return cellsCountCompactedFromMob.longValue(); } public void updateCellsSizeCompactedToMob(long size) { - cellsSizeCompactedToMob += size; + cellsSizeCompactedToMob.addAndGet(size); } public long getCellsSizeCompactedToMob() { - return cellsSizeCompactedToMob; + return cellsSizeCompactedToMob.longValue(); } public void updateCellsSizeCompactedFromMob(long size) { - cellsSizeCompactedFromMob += size; + cellsSizeCompactedFromMob.addAndGet(size); } public long getCellsSizeCompactedFromMob() { - return cellsSizeCompactedFromMob; + return cellsSizeCompactedFromMob.longValue(); } public void updateMobFlushCount() { - mobFlushCount++; + mobFlushCount.incrementAndGet(); } public long getMobFlushCount() { - return mobFlushCount; + return mobFlushCount.longValue(); } public void updateMobFlushedCellsCount(long count) { - mobFlushedCellsCount += count; + mobFlushedCellsCount.addAndGet(count); } public long getMobFlushedCellsCount() { - return mobFlushedCellsCount; + return mobFlushedCellsCount.longValue(); } public void updateMobFlushedCellsSize(long size) { - mobFlushedCellsSize += size; + mobFlushedCellsSize.addAndGet(size); } public long getMobFlushedCellsSize() { - return mobFlushedCellsSize; + return mobFlushedCellsSize.longValue(); } public void updateMobScanCellsCount(long count) { - mobScanCellsCount += count; + mobScanCellsCount.addAndGet(count); } public long getMobScanCellsCount() { - return mobScanCellsCount; + return mobScanCellsCount.longValue(); } public void updateMobScanCellsSize(long size) { - mobScanCellsSize += size; + mobScanCellsSize.addAndGet(size); } public long getMobScanCellsSize() { - return mobScanCellsSize; + return mobScanCellsSize.longValue(); } }