chenlinzhong opened a new pull request, #10685:
URL: https://github.com/apache/doris/pull/10685

   # Proposed changes
   
   Issue Number: close #10683
   
   ## Problem Summary:
   Currently, vectorized udaf can only be implemented locally based on c++ or 
Java. There are some problems need to be considered:
   
   - The cost for getting started is high
   - The requirements for the implementation quality of functions are 
relatively high, otherwise it will affect the stability of be, such as leading 
to core
   
   To solove this problem , I think  the remote udaf function  is a good way  
it can benifits:
   
   - the cost for getting started is low, for it can use  any language to impl  
udaf interface
   - decouple with doris kernel, it good for be stability
   
   We need to consider the performance, and whether the remote call will have a 
lot of overhead, Here I did a test
   ## Test the time-consuming of summation operation with different amount of 
data
   
![image](https://user-images.githubusercontent.com/11487604/177777586-37218055-82ea-4d2b-b9f9-8cb2ba3fe8da.png)
   
   **we can concluded:**
   - RPC udaf performance is better than that of non vectorized aggregate 
function by 6% - 29%
   - The performance of RPC udaf is significantly lower than that of native 
vectorized aggregate functions, but when the number of data rows is 1000W, it 
can still return in seconds, and theoretically it can support most business 
scenarios
   
   
![image](https://user-images.githubusercontent.com/11487604/177778335-90bad5b6-01f7-4594-98b1-0902d8945733.png)
   
![image](https://user-images.githubusercontent.com/11487604/177778356-b7076410-e39d-4485-805c-e445b38edbc6.png)
   
![image](https://user-images.githubusercontent.com/11487604/177778387-a93eab1d-bae3-4358-a18f-6d5a6835811c.png)
   
![image](https://user-images.githubusercontent.com/11487604/177778412-8499d990-7a22-4eb1-b7eb-e783a4b73893.png)
   
   
   
   
   
   
   
   
   
   
   ## Checklist(Required)
   
   1. Does it affect the original behavior: (Yes/No/I Don't know)
   2. Has unit tests been added: (Yes/No/No Need)
   5. Has document been added or modified: (Yes/No/No Need)
   6. Does it need to update dependencies: (Yes/No)
   7. Are there any changes that cannot be rolled back: (Yes/No)
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at 
[d...@doris.apache.org](mailto:d...@doris.apache.org) by explaining why you 
chose the solution you did and what alternatives you considered, etc...
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to