@Override
  public boolean evictBlock(BlockCacheKey cacheKey) {
    return doEvictBlock(cacheKey, null, false);
  }
Try to evict the block from {@link BlockCache} by force. We'll call this in few cases:<br>
1. Close an HFile, and clear all cached blocks. <br>
2. Call {@link Admin#clearBlockCache(TableName)} to clear all blocks for a given table.<br>
<p>
Firstly, we'll try to remove the block from RAMCache,and then try to evict from backingMap.
Here we evict the block from backingMap immediately, but only free the reference from bucket
cache by calling {@link BucketEntry#markedAsEvicted}. If there're still some RPC referring this
block, block can only be de-allocated when all of them release the block.
<p>
NOTICE: we need to grab the write offset lock firstly before releasing the reference from
bucket cache. if we don't, we may read an {@link BucketEntry} with refCnt = 0 when
{@link BucketCache#getBlock(BlockCacheKey, boolean, boolean, boolean)}, it's a memory leak.
@param cacheKey Block to evict
@return true to indicate whether we've evicted successfully or not.
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java