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

    
https://github.com/apache/incubator-trafodion/pull/1228#discussion_r138499497
  
    --- Diff: core/sql/generator/GenProbeCache.cpp ---
    @@ -470,30 +463,38 @@ CostScalar 
ProbeCache::getEstimatedRunTimeMemoryUsage(NABoolean perCPU)
       }
       const double outputBufferSize = resultSize * numBufferPoolEntries;  // 
in bytes
     
    -  // totalMemory is perCPU at this point of time.
    +  // totalMemory is perNode at this point of time.
       double totalMemory = cacheSize + outputBufferSize;
    -
    -  if ( perCPU == FALSE ) {
    -     const PhysicalProperty* const phyProp = getPhysicalProperty();
    -
    -     if (phyProp != NULL)
    -     {
    -       PartitioningFunction * partFunc = phyProp -> 
getPartitioningFunction() ;
    -       totalMemory *= partFunc->getCountOfPartitions();
    -     }
    +  Lng32 numOfStreams = 1;
    +  const PhysicalProperty* const phyProp = getPhysicalProperty();
    +  if (phyProp)
    +  {
    +     PartitioningFunction * partFunc = phyProp -> 
getPartitioningFunction() ;
    +     numOfStreams = partFunc->getCountOfPartitions();
    +     if (numOfStreams <= 0)
    +        numOfStreams = 1;
    +     double  memoryLimitPerInstance =
    +          
ActiveSchemaDB()->getDefaults().getAsLong(EXE_MEMORY_FOR_PROBE_CACHE_IN_MB) * 
1024 * 1024;
    +     if (totalMemory > memoryLimitPerInstance)
    +        totalMemory = memoryLimitPerInstance;          
    +     totalMemory *= numOfStreams;
       }
    -
    -  double  memoryLimitPerCpu =
    -      
ActiveSchemaDB()->getDefaults().getAsLong(EXE_MEMORY_FOR_PROBE_CACHE_IN_MB) * 
1024 * 1024;
    -  if (totalMemory > memoryLimitPerCpu)
    -     totalMemory = memoryLimitPerCpu;          
    +  if (numStreams != NULL)
    +     *numStreams = numOfStreams;
    +  if ( perNode == TRUE ) 
    +     totalMemory /= 
MINOF(MAXOF(((NAClusterInfoLinux*)gpClusterInfo)->getTotalNumberOfCPUs(), 1), 
numOfStreams);
    --- End diff --
    
    will do


---

Reply via email to