Github user kumarvishal09 commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2531#discussion_r203999922
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/datastore/block/SegmentPropertiesAndSchemaHolder.java
 ---
    @@ -237,6 +241,32 @@ public void invalidate(String segmentId, int 
segmentPropertiesIndex,
               .isEmpty()) {
             
indexToSegmentPropertiesWrapperMapping.remove(segmentPropertiesIndex);
             segmentPropWrapperToSegmentSetMap.remove(segmentPropertiesWrapper);
    +      } else if (!clearSegmentWrapperFromMap
    +          && 
segmentIdAndSegmentPropertiesIndexWrapper.segmentIdSet.isEmpty()) {
    +        // min max columns can very when cache is modified. So even though 
entry is not required
    +        // to be deleted from map clear the column cache so that it can 
filled again
    +        segmentPropertiesWrapper.clear();
    +        LOGGER.info("cleared min max for segmentProperties at index: " + 
segmentPropertiesIndex);
    +      }
    +    }
    +  }
    +
    +  /**
    +   * add segmentId at given segmentPropertyIndex
    +   * Note: This method is getting used in extension with other features. 
Please do not remove
    +   *
    +   * @param segmentPropertiesIndex
    +   * @param segmentId
    +   */
    +  public void addSegmentId(int segmentPropertiesIndex, String segmentId) {
    +    SegmentPropertiesWrapper segmentPropertiesWrapper =
    +        indexToSegmentPropertiesWrapperMapping.get(segmentPropertiesIndex);
    +    if (null != segmentPropertiesWrapper) {
    +      SegmentIdAndSegmentPropertiesIndexWrapper 
segmentIdAndSegmentPropertiesIndexWrapper =
    +          segmentPropWrapperToSegmentSetMap.get(segmentPropertiesWrapper);
    +      synchronized 
(segmentPropertiesWrapper.getTableIdentifier().getCarbonTableIdentifier()
    --- End diff --
    
    Use  getOrCreateTableLock 


---

Reply via email to