public MobFile openFile(FileSystem fs, Path path, CacheConfig cacheConf,
    StoreContext storeContext) throws IOException {
    StoreFileTracker sft = StoreFileTrackerFactory.create(conf, false, storeContext);
    if (!isCacheEnabled) {
      MobFile mobFile = MobFile.create(fs, path, conf, cacheConf, sft);
      mobFile.open();
      return mobFile;
    } else {
      String fileName = path.getName();
      CachedMobFile cached = map.get(fileName);
      IdLock.Entry lockEntry = keyLock.getLockEntry(hashFileName(fileName));
      try {
        if (cached == null) {
          cached = map.get(fileName);
          if (cached == null) {
            if (map.size() > mobFileMaxCacheSize) {
              evict();
            }
            cached = CachedMobFile.create(fs, path, conf, cacheConf, sft);
            cached.open();
            map.put(fileName, cached);
            miss.increment();
          }
        }
        cached.open();
        cached.access(count.incrementAndGet());
      } finally {
        keyLock.releaseLockEntry(lockEntry);
      }
      return cached;
    }
  }
Opens a mob file.
@param fs        The current file system.
@param path      The file path.
@param cacheConf The current MobCacheConfig
@return A opened mob file.
hbase-server/src/main/java/org/apache/hadoop/hbase/mob/MobFileCache.java