trafodion-codereview mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From selvaganesang <...@git.apache.org>
Subject [GitHub] incubator-trafodion pull request #1228: [TRAFODION-2733] Provide an improved...
Date Wed, 13 Sep 2017 14:24:07 GMT
Github user selvaganesang commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/1228#discussion_r138634994
  
    --- 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 --
    
    While making the change, I realized that I didn't get what is expected. I believe it is
already taking the MINOF(numOfStreams, NumberOfNodes()) 


---

Mime
View raw message