Github user sachouche commented on the issue:

    https://github.com/apache/drill/pull/1237
  
    @vrozov,
    
    **What are we trying to solve / improve**
    - Drill is currently not properly reporting memory held in Fragment's 
receive queues
    - This makes it hard to analyze OOM conditions
    This is what I want to see
    - Every operator reporting on the resources it is currently using (needed)
    - Fragment held resources (other than the ones already reported by the 
child operators)
    - Drilbit level (metadata caches, web-server, ..)
    - I am ok to incrementally reach this goal
    
    **Data Exchange Logistic**
    - Ideally, the data exchange fabric should be decoupled from the Drill 
Receive / Send operators
    - The fabric should be handling all the aspects of pre-fetch / pressuring 
and so forth
    - It will tune to the speed of producers / consumers when writing / reading 
data from it
    - This infrastructure should have its own resource management and reporting 
capabilities
    
    **Operator based Reporting**
    - Receive and Send operators shall not worry about batches they didn't 
consume yet
    - Doing so is counter productive as the Data Exchange fabric will interpret 
a "drain" operation as the operator "needing" more data. 
    - For example, the merge-receiver should not be managing the receive 
queues; it should only advertise the pattern of data consumption and let the 
exchange fabric figure out the rest. 
    
    The main difference in the two approaches, is that essentially, you are 
preaching for Receive and Send operators to control all aspects of 
communication whereas I am preaching for decoupling such aspects.


---

Reply via email to