Repository: hbase
Updated Branches:
  refs/heads/branch-1.2 922c3ba55 -> 7a45596b4


Revert "HBASE-14178 regionserver blocks because of waiting for offsetLock"

This reverts commit 922c3ba554eeb13c2390cdd1140b26006bb8a7e9.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/a4092444
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/a4092444
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/a4092444

Branch: refs/heads/branch-1.2
Commit: a4092444e6eba39e7523c118e80b3fb726485984
Parents: 922c3ba
Author: zhangduo <zhang...@apache.org>
Authored: Thu Aug 6 17:11:53 2015 +0800
Committer: zhangduo <zhang...@apache.org>
Committed: Thu Aug 6 17:11:53 2015 +0800

----------------------------------------------------------------------
 .../hadoop/hbase/io/hfile/CacheConfig.java      | 42 --------------------
 .../hadoop/hbase/io/hfile/HFileReaderV2.java    | 18 ++++-----
 2 files changed, 9 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/a4092444/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index 26eb1da..0ed3cbd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -431,48 +431,6 @@ public class CacheConfig {
     return isBlockCacheEnabled() && this.prefetchOnOpen;
   }
 
-  /**
-   * Return true if we may find this type of block in block cache.
-   * <p/>
-   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code 
cacheDataOnRead}, so here we
-   * consider lots of other configurations such as {@code cacheDataOnWrite}. 
We should fix this in
-   * the future, {@code cacheDataOnWrite} should honor the CF level {@code 
isBlockCacheEnabled}
-   * configuration.
-   */
-  public boolean shouldReadBlockFromCache(BlockType blockType) {
-    if (!isBlockCacheEnabled()) {
-      return false;
-    }
-    if (cacheDataOnRead) {
-      return true;
-    }
-    if (prefetchOnOpen) {
-      return true;
-    }
-    if (cacheDataOnWrite) {
-      return true;
-    }
-    if (blockType == null) {
-      return true;
-    }
-    if (blockType.getCategory() == BlockCategory.BLOOM ||
-            blockType.getCategory() == BlockCategory.INDEX) {
-      return true;
-    }
-    return false;
-  }
-
-  /**
-   * If we make sure the block could not be cached, we will not acquire the 
lock
-   * otherwise we will acquire lock
-   */
-  public boolean shouldLockOnCacheMiss(BlockType blockType) {
-    if (blockType == null) {
-      return true;
-    }
-    return shouldCacheBlockOnRead(blockType.getCategory());
-  }
-
   @Override
   public String toString() {
     if (!isBlockCacheEnabled()) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/a4092444/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
index 67aa922..4790ee9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
@@ -393,11 +393,12 @@ public class HFileReaderV2 extends AbstractHFileReader {
     TraceScope traceScope = Trace.startSpan("HFileReaderV2.readBlock");
     try {
       while (true) {
+        if (useLock) {
+          lockEntry = offsetLock.getLockEntry(dataBlockOffset);
+        }
+
         // Check cache for block. If found return.
         if (cacheConf.isBlockCacheEnabled()) {
-          if (useLock) {
-            lockEntry = offsetLock.getLockEntry(dataBlockOffset);
-          }
           // Try and get the block from the block cache. If the useLock 
variable is true then this
           // is the second time through the loop and it should not be counted 
as a block cache miss.
           HFileBlock cachedBlock = getCachedBlock(cacheKey, cacheBlock, 
useLock, isCompaction,
@@ -422,14 +423,13 @@ public class HFileReaderV2 extends AbstractHFileReader {
             // Cache-hit. Return!
             return cachedBlock;
           }
-          if (!useLock && cacheBlock && 
cacheConf.shouldLockOnCacheMiss(expectedBlockType)) {
-            // check cache again with lock
-            useLock = true;
-            continue;
-          }
           // Carry on, please load.
         }
-
+        if (!useLock) {
+          // check cache again with lock
+          useLock = true;
+          continue;
+        }
         if (Trace.isTracing()) {
           traceScope.getSpan().addTimelineAnnotation("blockCacheMiss");
         }

Reply via email to