[ 
https://issues.apache.org/jira/browse/TRAFODION-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15864249#comment-15864249
 ] 

ASF GitHub Bot commented on TRAFODION-2478:
-------------------------------------------

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

    https://github.com/apache/incubator-trafodion/pull/953#discussion_r100873849
  
    --- Diff: core/sql/cli/memorymonitor.cpp ---
    @@ -223,12 +229,12 @@ void MemoryMonitor::update(float &scale) {
        char * currPtr;
             bytesRead = fread(buffer, 1, 2048, fd_meminfo_);
             // Make sure there wasn't an error (next fseek will clear eof)
    -        if (!feof(fd_meminfo_))// Make sure there wasn't an error
    -        {
    -           scale = 6;
    -           pressure_ = 0;
    -           return;
    -        }
    +        if (ferror(fd_meminfo_))
    +           assert(false); 
    +        if (feof(fd_meminfo_))
    +           clearerr(fd_meminfo_); 
    +        else
    +           buffer[bytesRead] = '\0';
    --- End diff --
    
    fread cpp reference says the following:
    Number of objects read successfully, which may be less than count if an 
error or end-of-file condition occurs. 
    
    It looks like feof is treated like an error condition. 
    This code assumed that buffer is always big enough. I can change it to get 
rid of this assumption


> Reduce the number of  memory monitoring threads in Trafodion SQL processes 
> ---------------------------------------------------------------------------
>
>                 Key: TRAFODION-2478
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2478
>             Project: Apache Trafodion
>          Issue Type: Improvement
>          Components: sql-exe
>    Affects Versions: any
>            Reporter: Selvaganesan Govindarajan
>            Assignee: Selvaganesan Govindarajan
>
> A memory monitor thread is created in every SQL process to handle the memory 
> pressure in BMO (Big memory operators).  This has following drawbacks:
> 1) No consistent view of the memory pressure in the node
> 2) Overhead of calculating the memory pressure in every trafodion SQL process.
> Proposal is to move this thread to RMS SSCP process. All SQL processes have 
> access to RMS shared segment. Hence SQL processes can get the view of the 
> memory pressure readily and easily from the shared segment.
> It is also possible to increase the frequency of the memory pressure 
> calculation to get near real tiime picture of the memory pressure.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to