[
https://issues.apache.org/jira/browse/TRAFODION-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16163922#comment-16163922
]
ASF GitHub Bot commented on TRAFODION-2733:
-------------------------------------------
Github user zellerh commented on a diff in the pull request:
https://github.com/apache/incubator-trafodion/pull/1228#discussion_r138498790
--- Diff: core/sql/executor/ex_exe_stmt_globals.h ---
@@ -307,18 +307,38 @@ class ExExeStmtGlobals : public ex_globals
inline NABoolean grabMemoryQuotaIfAvailable(ULng32 size)
{
+ CliGlobals *cli_globals = GetCliGlobals();
+ if (cli_globals->isEspProcess())
+ return cli_globals->grabMemoryQuotaIfAvailable(size);
if ( unusedBMOsMemoryQuota_ < size ) return FALSE;
unusedBMOsMemoryQuota_ -= size ;
return TRUE;
}
- inline void resetMemoryQuota() { unusedBMOsMemoryQuota_ = 0 ; }
+ inline void resetMemoryQuota()
+ {
+ CliGlobals *cli_globals = GetCliGlobals();
+ if (cli_globals->isEspProcess())
+ return cli_globals->resetMemoryQuota();
+ unusedBMOsMemoryQuota_ = 0 ;
+ }
--- End diff --
Thanks very much for the detailed explanation! Now I understand that your
model will work fine. My hope would be that we will share ESPs more, not less,
in the future. A long time ago we designed them to be shared, but a lot of bugs
made us share less and less. Maybe something to keep in mind for the future.
> Provide an improved memory quota assignment for big memory operators (BMO)
> --------------------------------------------------------------------------
>
> Key: TRAFODION-2733
> URL: https://issues.apache.org/jira/browse/TRAFODION-2733
> Project: Apache Trafodion
> Issue Type: Improvement
> Components: sql-cmp, sql-exe
> Affects Versions: 2.3-incubating
> Reporter: Selvaganesan Govindarajan
> Assignee: Selvaganesan Govindarajan
> Fix For: 2.3-incubating
>
>
> The big memory operators in Trafodion are HashJoin, HashGroupBy and Sort.
> Trafodion deploys multiple executor server processes (ESPs) to execute a
> query via its data flow architecture. Each ESPs can have an instance of this
> BMO operator. Currently, each instance of this operator can potentially have
> memory quota of 800 MB assigned to do its BMO operation. However, the memory
> allocation is usually limited by the memory pressure when this BMO attempts
> to allocate memory within the assigned quota. The assignment doesn't depend
> upon the estimation of memory needed by this operation.
> Improvement needed in BMO memory assignment are:
> 1. Limit the memory quota assignment for these BMO operations per node
> 2. Memory quota assigned taking into consideration estimated memory needed
> at every operator.
> 3. Ensure that the BMO gets the minimum memory needed at least to function
> smoothly
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)