@Override
  public List<LogInfo> getLogSegmentMetadataFiles(boolean includeActiveLogSegment) {
    List<LogInfo> result = new ArrayList<>();
    final Timer.Context context = metrics.fileCopyGetMetadataResponse.time();

    List<FileInfo> logSegments = getLogSegments(includeActiveLogSegment);
    if (null != logSegments) {
      for (FileInfo storeFileInfo : logSegments) {
        LogSegmentName logSegmentName;

        if (storeFileInfo.getFileName().isEmpty()) {
          // This happens when the code is running locally and a single LS exists with the name "log_current"
          logSegmentName = LogSegmentName.fromFilename(LogSegmentName.SINGLE_SEGMENT_LOG_FILE_NAME);
        } else {
          logSegmentName = LogSegmentName.fromFilename(storeFileInfo.getFileName() + LogSegmentName.SUFFIX);
        }
        List<FileInfo> indexFiles = getIndexSegmentFilesForLogSegment(dataDir, logSegmentName);
        List<FileInfo> bloomFiles = getBloomFilterFilesForLogSegment(dataDir, logSegmentName);

        result.add(new StoreLogInfo(storeFileInfo, indexFiles, bloomFiles));
      }
    }
    context.stop();
    return result;
  }
Gets the log segment metadata files from in-memory data structures
This method returns List of LogSegmentFiles along with its IndexFiles, BloomFilterFiles
ambry-store/src/main/java/com/github/ambry/store/BlobStore.java