core/src/main/java/org/apache/carbondata/core/indexstore/BlockletDataMapIndexStore.java
/**
   * Below method will be used to load the segment of segments
   * One segment may have multiple task , so  table segment will be loaded
   * based on task id and will return the map of taksId to table segment
   * map
   *
   * @return map of taks id to segment mapping
   * @throws IOException
   */
Below method will be used to load the segment of segments
One segment may have multiple task , so  table segment will be loaded
based on task id and will return the map of taksId to table segment
map

@return map of taks id to segment mapping
@throws IOException
Below method will be used to load the segment of segments One segment may have multiple task so table segment will be loaded based on task id and will return the map of taksId to table segment map @return map of taks id to segment mapping @throws IOException
private BlockletDataMap loadAndGetDataMap(
      TableBlockIndexUniqueIdentifier identifier,
      SegmentIndexFileStore indexFileStore,
      PartitionMapFileStore partitionFileStore,
      Map<String, BlockMetaInfo> blockMetaInfoMap)
      throws IOException, MemoryException {
    String uniqueTableSegmentIdentifier =
        identifier.getUniqueTableSegmentIdentifier();
    Object lock = segmentLockMap.get(uniqueTableSegmentIdentifier);
    if (lock == null) {
      lock = addAndGetSegmentLock(uniqueTableSegmentIdentifier);
    }
    BlockletDataMap dataMap;
    synchronized (lock) {
      dataMap = new BlockletDataMap();
      dataMap.init(new BlockletDataMapModel(identifier.getFilePath(),
          indexFileStore.getFileData(identifier.getCarbonIndexFileName()),
          partitionFileStore.getPartitions(identifier.getCarbonIndexFileName()),
          partitionFileStore.isPartionedSegment(), blockMetaInfoMap));
      lruCache.put(identifier.getUniqueTableSegmentIdentifier(), dataMap,
          dataMap.getMemorySize());
    }
    return dataMap;
  }
private BlockletDataMap loadAndGetDataMap ( TableBlockIndexUniqueIdentifier identifier , SegmentIndexFileStore indexFileStore , PartitionMapFileStore partitionFileStore , Map < String , BlockMetaInfo > blockMetaInfoMap ) throws IOException , MemoryException { String uniqueTableSegmentIdentifier = identifier . getUniqueTableSegmentIdentifier ( ) ; Object lock = segmentLockMap . get ( uniqueTableSegmentIdentifier ) ; if ( lock == null ) { lock = addAndGetSegmentLock ( uniqueTableSegmentIdentifier ) ; } BlockletDataMap dataMap ; synchronized ( lock ) { dataMap = new BlockletDataMap ( ) ; dataMap . init ( new BlockletDataMapModel ( identifier . getFilePath ( ) , indexFileStore . getFileData ( identifier . getCarbonIndexFileName ( ) ) , partitionFileStore . getPartitions ( identifier . getCarbonIndexFileName ( ) ) , partitionFileStore . isPartionedSegment ( ) , blockMetaInfoMap ) ) ; lruCache . put ( identifier . getUniqueTableSegmentIdentifier ( ) , dataMap , dataMap . getMemorySize ( ) ) ; } return dataMap ; }
Below method will be used to load the segment of segments
 One segment may have multiple task , so  table segment will be loaded
 based on task id and will return the map of taksId to table segment
 map
Below method will be used to load the segment of segments One segment may have multiple task so table segment will be loaded based on task id and will return the map of taksId to table segment map