Re: PLC4X Request Optimization

2019-08-26 Thread Julian Feinauer
Hi Julian, thank you very much for your insights. Your analysis is very detailed and I agree with all your suggestions. For myself I started to realize the "big" differences between Calcites Use Case and the PLC4X Case. I will definitely have a look into the book advised by you (I like

Re: PLC4X Request Optimization

2019-08-23 Thread Julian Hyde
The first step is to realize that you are looking at an optimization problem. Congratulations, you’ve done that. The next step is to evaluate the possible optimization techniques. Volcano is suitable in cases where there is dataflow - where the solution is a tree or DAG. It doesn’t seem that

Re: PLC4X Request Optimization

2019-08-23 Thread Julian Feinauer
Hi, a short update on this matter. We had a meetup yesterday with the PLC4X community and I prepared a very first "demo" implementation of the Optimizer / Framework. I tried to organize it after the Calcite / Volcano approach. We had several discussions and experimented a bit and some things

Re: PLC4X Request Optimization

2019-08-20 Thread Julian Feinauer
Hi Stamatis, thanks for your response. I think my brain just needs a bit more time to get really deep into those advanced planning topics (its sometimes slow on adopting...). But I will look through it. We have a meetup this week and will discuss the matter and how to setup everything to enable

Re: PLC4X Request Optimization

2019-08-20 Thread Stamatis Zampetakis
Hi Julian F, I admit that I didn't really get your example but talking about 'batch request optimization' and 'collapsing "overlapping" but not equal requests' I get the impression that the problem is optimizing sets of queries which may have common sub-expressions; the problem is usually

Re: PLC4X Request Optimization

2019-08-20 Thread Julian Feinauer
Hi Julian, thanks for the reply. I have to think about that, I think. But as I understand the Spool Operator this is to factor out multiple calculations of the same issue. In our Situation we aim more on collapsing "overlapping" but not equal requests. Consider 8 bits which form physically a

Re: PLC4X Request Optimization

2019-08-19 Thread Julian Hyde
One tricky aspect is to optimize a *batch* of requests. The trick is to tie together the batch so that it is costed as one request. We don’t have an operator specifically for that, but you could for instance use UNION ALL. E.g. given Q1 and Q2, you could generate a plan for select count(*)

Re: PLC4X Request Optimization

2019-08-19 Thread Julian Feinauer
Hi Danny, thanks for the quick reply. Cost calculation we can of course provide (but it could be a bit different as we have not only CPU and Memory but also Network or something). And also something like the RelNodes could be provided. In our case this would be "Requests" which are at first

Re: PLC4X Request Optimization

2019-08-19 Thread Danny Chan
Cool idea ! Julian Feinauer ~ I think the volcano model can be used the base of the cost algorithm. As long as you define all the metadata that you care about. Another thing is that you should have a struct like RelNode and a method like #computeSelfCost. Best, Danny Chan 在 2019年8月19日 +0800

PLC4X Request Optimization

2019-08-19 Thread Julian Feinauer
Hi folks, I’m here again with another PLC4X related question (https://plc4x.apache.org). As we have more and more usecases we encounter situations where we send LOTS of replies to PLCs which one could sometimes optimize. This has multiple reasons upstream (like multiple different Services