Hi,

Julian has shared with me some results and indeed it has a big improvement
in some cases.
This work is promising, but we must avoid the cases that code generation
time cost  > saved time cost...

Best,
-----------------------------------
Xiangdong Huang
School of Software, Tsinghua University

 黄向东
清华大学 软件学院


Chao Wang <[email protected]> 于2022年1月1日周六 16:13写道:

> Hi Julian,
>     Great Job!
>
>
>     Looking forward to your later work.
>
>
>     BTW, happy new year for everybody!
>
>
> Thanks!
>
>
> Chao Wang
> BONC ltd
> [email protected]
> On 1/1/2022 06:44,Julian Feinauer<[email protected]> wrote:
> Hi all,
>
> after a short discussion I had today with Jialin I took some minutes to
> see if / how code generation could help us to impove the performance on
> Queries.
>
> The first thing I looked at was the Filterin in the SeriesReader.
> Currently many Filters have if conditions / branches in their `satisfy`
> method.
> As this method is called on every datapoint (that is not filtered out on
> another level) there is lot of potential for improvement.
>
> I pushed a branch with my code changes (which are not that much,
> actually), see [1] for all technical details.
>
> What did i do?
>
> Basically I changed the existing filters to also return an AST of their
> "filter operation". So I can visit all filters and dsynamically generate
> the Java Code for the "perfect" Filter in that situation.
> This is then dynamically compiled in a Java class and live loaded.
>
> Of course this process takes some time (about 100 ms or a bit below, I
> think) but then improves the speed on every data point.
>
> What are my results so far?
>
> I generated an example file with about 50 Mio. datapoints and three
> different types of filters (simple, standard, complex).
>
> And so far, my results show that the performance can be improved to up to
> 20%!!!
>
> For simple queries its not beneficial and can make it even a bit slower
> (see overhead above).
>
> For standard queries I saw about 5% improvement in query times.
>
> For complex queries i saw between 10% and 20% improvement in query time.
>
> I will do some more benchmarks the next days and would love tow ork
> together with other devs from the community to get this feature in the next
> release!
>
> Best!
> Julian
>
> PS.: Happy new year for everybody
>
> [1] Branch:
> https://github.com/apache/iotdb/tree/experimental/code-generation
> [
> https://opengraph.githubassets.com/4a5319a07e99ead0a4adb97783f0ba1682e78fa6c074c1a9204c2ea82a2a347b/apache/iotdb
> ]<https://github.com/apache/iotdb/tree/experimental/code-generation>
> GitHub - apache/iotdb at experimental/code-generation<
> https://github.com/apache/iotdb/tree/experimental/code-generation>
> Apache IoTDB. Contribute to apache/iotdb development by creating an
> account on GitHub.
> github.com
>
>

Reply via email to