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 00:17:53 GMT
Github user selvaganesang commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/1228#discussion_r138498601
  
    --- Diff: core/sql/optimizer/RelExpr.cpp ---
    @@ -1988,77 +1988,62 @@ NABoolean RelExpr::containsNode(OperatorTypeEnum nodeType)
     }
     
     double RelExpr::computeMemoryQuota(NABoolean inMaster,
    -                                   NABoolean perCPU,
    -                                   double BMOsMemoryLimit, // in bytes 
    -                                   UInt16 totalNumBMOs, // per CPU
    -                                   double totalBMOsMemoryUsage, // per CPU, in bytes

    +                                   NABoolean perNode,
    +                                   double BMOsMemoryLimit, // in MB 
    +                                   UInt16 totalNumBMOs, // per query 
    +                                   double totalBMOsMemoryUsage, // for all BMOs per node
in bytes 
                                        UInt16 numBMOsPerFragment, // per fragment
    -                                   double BMOsMemoryUsagePerFragment // per fragment,
in bytes
    +                                   double bmoMemoryUsage, // for the current BMO/Operator
per node in bytes
    +                                   Lng32 numStreams,
    +                                   double &bmoQuotaRatio
                                        ) 
     {
    -   if ( perCPU == TRUE ) {
    -     Lng32 exeMem = Lng32(BMOsMemoryLimit/(1024*1024));
    +   if ( perNode == TRUE ) {
    +      Lng32 exeMem = Lng32(BMOsMemoryLimit/(1024*1024));
     
    -     if ( inMaster && CmpCommon::getDefault(ODBC_PROCESS) == DF_ON ) {
    -        
    -        // Limiting the total memory in the master process when in both
    -        // the per-CPU estimation and the ODBC mode.
    -
    -        NADefaults &defs = ActiveSchemaDB()->getDefaults();
    -
    -        Lng32 inCpuLimitDelta = 
    -                    defs.getAsLong(EXE_MEMORY_AVAILABLE_IN_MB)
    -                       -
    -                    defs.getAsLong(EXE_MEMORY_RESERVED_FOR_MXOSRVR_IN_MB);
    -
    -        if ( inCpuLimitDelta < 0 )
    -          inCpuLimitDelta = 50;
    -
    -        if (exeMem > inCpuLimitDelta)
    -           exeMem = inCpuLimitDelta;
    +     // the quota is allocated in 2 parts
    +     // The constant part divided equally across all bmo operators
    +     // The variable part allocated in proportion of the given BMO operator
    +     // estimated memory usage to the total estimated memory usage of all BMOs
    +   
    +     // The ratio can be capped by the CQD
    +     double equalQuotaShareRatio = 0;
    +     equalQuotaShareRatio = ActiveSchemaDB()->getDefaults().getAsDouble(BMO_MEMORY_EQUAL_QUOTA_SHARE_RATIO);
    +/*
    +     char *equalQuotaShareRatioStr = getenv("BMO_MEMORY_EQUAL_QUOTA_SHARE_RATIO");
    +     if (equalQuotaShareRatioStr != NULL)
    +         equalQuotaShareRatio = atof(equalQuotaShareRatioStr);
    +*/
    --- End diff --
    
    done



---

Mime
View raw message