From a61e96477bea86415a322c9acb10267893c764c3 Mon Sep 17 00:00:00 2001 From: Ruihang Xia Date: Mon, 26 Dec 2022 13:12:24 +0800 Subject: [PATCH] docs: RFC of promql (#779) * docs: RFC of promql Signed-off-by: Ruihang Xia * docs: change styles, list drawback of misusing arrow Signed-off-by: Ruihang Xia Signed-off-by: Ruihang Xia --- .../2022-12-20-promql-in-rust/example.png | Bin 0 -> 34336 bytes .../instant-and-vector.png | Bin 0 -> 59808 bytes .../matrix-from-array.png | Bin 0 -> 35498 bytes .../range-vector-with-matrix.png | Bin 0 -> 47235 bytes docs/rfcs/2022-12-20-promql-in-rust/rfc.md | 175 ++++++++++++++++++ 5 files changed, 175 insertions(+) create mode 100644 docs/rfcs/2022-12-20-promql-in-rust/example.png create mode 100644 docs/rfcs/2022-12-20-promql-in-rust/instant-and-vector.png create mode 100644 docs/rfcs/2022-12-20-promql-in-rust/matrix-from-array.png create mode 100644 docs/rfcs/2022-12-20-promql-in-rust/range-vector-with-matrix.png create mode 100644 docs/rfcs/2022-12-20-promql-in-rust/rfc.md diff --git a/docs/rfcs/2022-12-20-promql-in-rust/example.png b/docs/rfcs/2022-12-20-promql-in-rust/example.png new file mode 100644 index 0000000000000000000000000000000000000000..58d20735a141c86b78df6f8560e19002094fc7c4 GIT binary patch literal 34336 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 S!N&#yek4R>gewH~eE%D7rR}r; literal 0 HcmV?d00001 diff --git a/docs/rfcs/2022-12-20-promql-in-rust/instant-and-vector.png b/docs/rfcs/2022-12-20-promql-in-rust/instant-and-vector.png new file mode 100644 index 0000000000000000000000000000000000000000..3732d0238cf8a0323de602c0486a58e54b57fffd GIT binary patch literal 59808 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 +#>)|}GuWrJ9;IjwA6DH;Vw`%L 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 aXtM2}-?0dI8@&(wDP32;mUYGK;r{^8@28sp literal 0 HcmV?d00001 diff --git a/docs/rfcs/2022-12-20-promql-in-rust/range-vector-with-matrix.png b/docs/rfcs/2022-12-20-promql-in-rust/range-vector-with-matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..bc0344b44ed55656bf68d778d2f587b57ac4d8e3 GIT binary patch literal 47235 zcmeFabzD^I8aAvLScr-V0xAm9DkUJH2q>)xNUL&-vc{-}n2zbN)G=y_d6|^*nc8*L6SVk&=Qm)fU<2Cu_wcY{9G>6TK2m_t=h# z7GHH#dLG%5dO7gY*?Z4+T#WHKZ6+3$C(q|I>kv*N6l0t)M2*Sj5544?;aU0M#a_}< zgnzHgY>)l(Cu`PHtlzZbkoety{^5$&wPRG{kJT!_{o!B22K~hwBww( zgz)(w4&Q(ND*h=LH!X*Q`AG+lu~zuh@Qx`N`2gFNn(Gz#sQ)joS_i+Rnq(`aXX? zDmcV-fBrZBJH-DT;{V${@la$Ld0v;C9G@&Y9BS<-RPv^X#@Lj^mt9oj8UF{@^gGhn z;%>;=u_rV;ai+a7?b?3MN2~p+`s<+1dr9>2f3SXTL~cq;N#iptKS z4mtEGN#ipzzd0=ghe!^$IDX!mZ)u&c);hnD4 zAws+deWfP7aE~JTl*x@V(tmj6dE}L{N7Gwc&{xLZFh2RGSF*f%={_Vl9EvS<>u$Z^ zmN3`UXsNGd5xiGxa-@@7N&@qy7Fd^`HC;B4mQSq$V1VOuY9VLs`GZYdmv$8 z@`twuuQV6Tk^RGCN07(%d@@@+^>RpBqUdYWhSfoI$E8E25~p6;(zhSv6Qk|4 zm5UbHx#}ZZbl{;(;)BhZZ;;*EzUxHIAL8+=Y}knyHdTp3$ZjS3Feb11p&f@B1CZ^~ z46(6pSdXsC$mhg~RYtbPt#|Wziwi`B_m$(D&Li6@tYXLghsPdog2z<zj)+O%gm*IKG3`M1e*6lq_z#b< z9f8Nxcb1fMGa>s*$Edw#^;0`HyyQR1q|tt>4lxMr3f@kdRl6lVjyzdj@8)$htB-pm3_0z|^H00I z#F4$vQ#P3WLy?p45P3}UJ8kJx)Ek{`)~>EE&hLKM`Ru8&b_Jg_Vi5FLW5w0`kh2dS zN^!Y<&-?_kS@+l1p87*P}5>%Ou*9f3%(FlGS76q!J!wS*|(+H!0+xh=s=KrAvv!{2ro>p-=jk;s-@v$ST-T#Xy8cH}u-#*xi%_}91 zPmd<251pzTX^O^PlBRDJ3W%{(L%rtEqp9HrtMMbkQx%e{yr*#+;ypSl!*jzCihXnS z_Kv3(Vbj9-d++pzKhL>*tS$W>5|UZ^oS+=YVBW!hgW^kacv}?S>=CtvM-)J{q?Eh z>1J66YLZcZYEGL5e&D&H0-gD*vx>v4reBaF;$k~25^U7_+5x{f)nMi6+NN&Q`t3{v zL(_qP-w$qw2Kvj>5lhqYsnl*9pQ{xvoL>C$?#YX!VQVx-HAFXcZO-hMvMd-3XgiAI zX0Gs>ZtEKP{ZrkNkf1e$7tkwzYBM(&I4n4@rDA@7MJ$NF(>Quhui6Y98W~5cG~Ud^ z&xO0rN(H?^9B7P`G(xq~PYF*{1~?1TP(c& zriCYuWp}$@IH@tltZ3s(rEuE+)%k zR9|bBpId(5go@*t{1crQ;wxXH(G{ubXcQz5*Bk9Hb+rz^(G{dF?SoBW2Llq!Imy1tfR4K{3uFg!sQZ?D^H1L`SzPPD zn_cs%y^*V;I9a_9d9@qt!=4O}Rp;Wr&-k{4u(0V-;oC8_W0<7|a*(QqN$jb>#@24M zG*Q7l!Q_j9&81dnFnwsRc)H3PUam)u_KU-Cn0>R@;ybZ{lUFMAobj@{GV3;O8~Hw$ z$%tmF%;(slMUtRpjMaq-uk1%-cB{7X5VDnL9`57R@T(V@?LOl^dgp0YgQzgo!PBq$ zhihEXj8LPX5Hh9fGSi9=G787HD{Go(NDAR&p3mE+hpev1ZXjuHC~9$`k1R@xAWvbw z?N91IxwJG%7EJ|nrWeyC-bX{5-R;g7rD6S2^X|5U3v^|c$5t8MF2wNe-}&_R0si$= zeT`m%SH<^QBhlw=x)_pI1or}3S#b#qTGaN{!&$up1E#u`w<=jupes7NNbItT$1GN0 zYSAAmDqSeb{^U+)x9E(cM$1rKm5JVxofjRRt}TPfVoj0%s&IAz31`%w!Np_JUB=BE zwzYoUA0K9?LCbG`wW1-AbPb8QfnlMp^?g;aAPHgcsLDTh)Q=BaTAag=>5?50+bd^{ z5A~ILy1(h`l!4fOq_#0&iI12P`%<?W9Q$-9vYy!YvBekr9LG|pJ*}Lhi#>X+XZMwSdBA(;%g40xFRKeu zaa+_%chpAfwv7vU2@bu;?y>8#6_zt;KqH2U51#zK=b%8dz!Pxv$#I2M*0~$)1$r;+)3&*U9^6{WgU^Va zX6e6LB>M|7Z?NpRn}iD=o>(}na$tUBYq~l<-?j=9ak2~MHMxxbRNrDhq6>uQ<=%{azgX0; z%TU7<#3qx2!k0hY)1>{~h$5j%r>f%5&F|LKbsEo^PPKAj_l^=`&}$Hxm7`?1bM03v zpA8agKtA#o;lhKhma95Aw_iSz&rG%O`{yT+SNl&Q2JAP}`BDds0-xRwI&@#?S}{{um*wJ0ToL0-Wm9~kT`G5V*jt65pWX2 z?G4*g4>ry5`q+Q5Y1{Ir2k_r&xEqii>bTSIiG^ac_ZQPKIxvNqE$WkR5M3}=RO7!r zP-*k6ie=Vj`~6i_%%*7tG*J2k>Nv7$-}5#`Sk=}8!atNmWn}$v3QU&+9*LSUo@VpdDuGWuixW= z_#s_1uU@$#yg%L(g9I9QJ2=e0aZ$EkjF|TIWKlYNrRUOvfF~N3z8jpwe0ZlGf zt?T%(m<20x>aTWjd1@bG>e*iOiArlYR)wiXcO>}IX=+WRHi(g(=j-iDo}&jlnv@*J zjhU?aJ{r0q1@%Z+{6cY|h8^b5B!^pGm^??uXXfVTLdPbzIz5uKY-&{?fiO+@~4b zVItS>hq%V=G=;pSaYML>uzWCY;`9v@<9)gmRO6rP0tNLBK-}hh54*eB&EOBa3zd@7 zkMwUQkt~pBYCKy$Ly~H3Vwe6z}R#Hys-? z{QZ-}3(&BVsEr}b;J;QdHb6~W5p?4ExlY3ni%!=xHfprFQQ6fpB=mA)TAf8<*eWBu zCP*PaNi83A>R8XM3i{Xqy)Pf%;IR=)HX3@Kd@?~|-WO3&#d|dHgj7qJzqoOnY1o z<}p$j;~aOG8rq{e356sN{hg0)59->JAE6OV?a|2B{7dWF_4dA76)b3(BE{er6vKr0 zdR!OAAGEl9|MCgnqO8cNpQfX@3#mMc6{Nh&y=n6qZtY*yVm6*$ONtWnUz8S`zvMXG zB<&RL2CYE+u=Q@fvq&|z&;MEI@FUv%&;#36XU>$nON|kMOTlJo7ZpWjt|)%{;zsR! z$YqEp;$m`Ip{Zgyw_YP^B}|-xwFmfa3Yz!q_}$gkQm`H)MU_5%Lz?Z2u!NYSHI)Hn zW!xhgmbjdD9pUy{H4GdGoB(CC$CNacmPgmj{@;!DZkf~iX^#NcC96iZRxPxwLMdUsvYp4uz(XQRCLdyc9N0+s8KNL?VZ{_GbMHlV+l@WRBHk~7d?m9gDMu&!GAw|D6`qYIWE}X_6lBTceltim~{})`tp0xQ~dE>W!_klHT7RwNDN;cLslF=BKpz&URM2e}DO!wWPxbMx;>iu_)2;Q3GuIBmKBlht(njhow5m z;mm^;S$D2{3p!!?@f)uA(yBdzuhEaBTL#|aMvsZo@!dS;8?=fRP+|us)$q^yQityP zr%P2vZxh^VjAo@)qfw2FzHa~9$p5^Nl!a|ORB+f?oUS?B-Ue0c}{e-SSq9XVmu z`x;>!;_Ule1lrTh$>UE80Dg!+Ea4tA)2=H9(A|kGx+AtFz>nae06`g;t$R5xu%~8U zHqix0M<~`t{c$;;II0BE#yW1gb->1!`vk!B)4&eIk&e6d_7agy%z_AXO{^mkEU~N4~{hzfFy}KxPgx_sz62FZeqVwwyh58I!QR*S1Rn$-k8HH&oUI7W?N- z(-q=03)SBxKUQmN=>Vh_3-HC&4}%Y`V$(6CF{Iv(4b*iNeD4^TS4oiXArZT{Er0}x zn!PmrIZKL2UcivkeXTy{>G_aEZ+>*6jB8cXEe@;b4!JxwJNvM&alep_F)bh&V|28m zT-85M(Pu+aC*x!D&X^n&WNY+O<-CbIxo)=C$;xq}VEA%diEcH(cmMCqhk(u@aNxt<{VGH)N*lqT~rlZknW)JHC!39y_tn=GDH zfL0wdZLvFZ2}5ef$dkV^k}p+iNh;p%xb9(MnYxCwQj#~tvg(&$6~#m>UVklrP`k&$ zx6nm`$w`*{kjd+z)-E%a6==jbL0n~Cf@+YubQ~=fX^Yv`TehXB;{lnI$BB*IHelR! z`qt<7h34@r3za2qU#-YQE0F_5Z1-IWdW^Cm7P;yw0m_NC-54?npW9`b+!Fjvr&ir4 zZ15>*_AIG)wj>ZCm0sgy8M%dJNq))-tSSKbcd4SF}WX^&3zbf@HFC^g+$eW_GU z+3sVeo+MCnenSlreUp6B1t%AprU;zc?Ydjee5+)_m(y9Lh}2PvesOCP;Lo(S)5h$& zL&&ITrV{8@a`Gk6Y2v;zi5{QkmUU^@wvW|a{JbxxPTVeym{Gx?*+s(rY$U`<>#HZI zTNSg_g;Dx5Qjk;lCVQ~h@iE50;>nVQT+ySAGc0Zha*bIU#wg%U^2q0BQg0O*O^6PD z)#^I_HO#*E;&T?o?c}wQq)u}glL!~$#r_KK$;olg{Pc-BLdlVNQt8fHxfg%r8*z*E zsx1+q39&ZKQlqQVMa#;mhI5CR0uJOChJ_WrzDMse-DI*bp2r;%zLVMH?Iotk)OS@Z z5uusXRJO5g9wkczBQdjWA0U{8D+rJCGVYp-*aIDPyJlZwWl2WsUt?e1Q7aY^GG%FU zO}&3w_?r#Y1nLd(S&M#`QIGSqQg!=|M40lS{HJAg5IkC2G_s8^Ddi9Yix(z};_p+7=94JR zi0`vau+7x2U+xEwn||mzaN?S{5Cl$TVgs`-(rp$F1)I@IziQJki*3LxO?h_BIthfj ze3|^PPq+ItrIm?5+5rEGl4TRCk`(6nQ9ns;<>gmzEPPsKP(h_%v7Hy++&C|hV+Bmw zG@xF5iPM472NGrFR(ciEV$KvZ3||W|e}M zjj+E@#eX4Uz9n8pS6Y2*B`r=}qA0N)LS-OAZNyoMA#oH>*Y{mYZ?+Ub(wMLP6#{l- zeuZE57+&1EFXOG<@{7aR)JA$=u4^A)6ztP~F5k=|`t{KkmC}yb*FUh%4+F7TV9F34&eJ+Ht){!b6ZCl2b^C~{$_T5Wh`B=d^!f(*T}$Q zC?~Y^y`PsR`<6SC{iBTO$)Au@jd&{R`oHZnL`b`&`t7p zZ}N*?0CXZX!0pQJt_5~-{<8i3^{$0@s#K&{QN+w+-Pk*NnpfDziH(~VZLr=49cNnA zu*U+mcIDse;dFWba3>z3E#7j6;@|E3NEGsA43@E9qOuycg@|EX$INnCRb_EL(egzo zWMzE$$@cEYLtCpm(hbtH>V@#u5er(S6RG|3z+uY;YTK#P=e4Da@R2Hm1g(c+tX!u; zNSR6f@_?V&cR~&r%g=EgPsCe|m>JKqGh6<&pW~OVNs@w@8KVkp)H53>9hc^Yu^>vh zOq}f|U`pqPLNJ#KQWA@sr08Ph1$uZ5NOz+oJOZxv^eWP$P*#JKqTz9&o9Ytm3mf|0 zoArAND8xs&I@09zc22E0TloZLdZfwZ^ZQ4hJ!CjwzqI_%kKrFe%^(j!N>^_-!opdS zj8QfUjU&&eTU(5K{(u*i_POmLITYim#yuEaPm6$*0smm1&Pc+5rd6>mqH?L$u}kdV zgRJB%_NvXtw1T1FX~5bxw2oThx~xiFgyu)0i|CGi!ODx>zEMGMFDFfJd*$O6yS(W* zf$R!z#t0(LC}LvAeX%fl!RI8=#`nqiQnEnC5OF0^J!A%tKK{4?iG3}J%2=?hkQ(1C z>Zf7@&m@|YlGB1~?x-9%it1~8Bl+7e*?e@J$412IE`1BMNXul%V|4xg$pp?PvBFTO z`vU~SP{X?5)=$_B#xAq;;$~pmb~w>!r{W=Fm3Rh3-{lDfD+<{S? z`l$SCX9@OLP0NB<+aWEQbgY6fCzRzWk2Ld)R+>b&L+A=>FQ4ZrvLYLWI~Z!%_t+-a zHl^pF$XRK%W^qXMrfwu{`GuWriD5T0G?KSalM!3|M2$tfMCy{hm7$T9u>h$MIt(oE zvCXI53D}e@cROr4VTvZR;gWHuKWYD`VKMStoJE)G&$GC<*{_K)=}42Fw@82`v;%Jg za^V-^6`eoRnE0!xvYOZH$n8d*U&p%!*y6x10(gih{=gjglSw;<(yFa8AO$2WjCcKgw#~J=y z!)J62!OgzMWSa-7o+GZiMO%Y@sUF43A4rLmR#k85UO~hM^L!qAAq4kylea6c#j7_P z_h?@itf>~ga(Ln917=>OOr;Dw_~i(Ncs{Rj&(NJFi|Ja zXHFWKtKlvU#VRBT*2as@u+|X_{0xEAKo~o#^LkiZ0fymj=F(lIw#gkOQD29@;f7iC z`&wQA@2Y-`)uvbIwaKO9FRFgFEiyF6lf|xdy7%$i!f{`dBv;iVE|6B8UIrd%_%Soi zj=0v%mh>#2P)C6Gzpi`CJ51cC>zvWrku=43{q0}bb^Ki|4o@s5Q&Si}nL0%Yirj3z z$P$Zmg7HnGCu^afcxDM1(b0U!#qOlz^oY&k*NS+k2nvW!IcI-b<97-JqDNAsJ()Bc z-(^{pnjM=08WH>?d1+EMq_pc1O3Zgv2TnWV+?-a_E`Heyz48lD)Go)zU%lI291_XQ z)Q3RkU~mrdc2mP$jkP+i>bj2jSep-f)LJqpWUWkBdXDi~T-C;qn}imq?EN=V(Y9>% zHu||Mn|5<4*8|fjb3(XBYPk!ZBo%RVDZTa-q-((Eh+w0zjhV*)d8~wE4 z>KzF(n1rXrMiri+0L~l8k&LVn6{87^=y1ExhjE|G$84*<;)X`h~{*_f&pgre?TVY95giB-vA|~9k zE}sd}O|S~PCULdXnx*(4WdQGu_YVurt3-e99_nb0!oqw)iv1&842Fja=ed>g1g5j5GPA6+v`PE&0f1Q`P&-w+l$zdJ=j&$l5?84w~D-XnaFg=s+43WYXOnU#HF#VnM{~09dnu>O*HgoGMu

D_4#7s*!tZ+vXBN%rh^Jg&a_4a;kiG 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" +--- + +Rewrite PromQL in Rust +---------------------- + +# Summary +A Rust native implementation of PromQL, for GreptimeDB. + +# Motivation +Prometheus and its query language PromQL prevails in the cloud-native observability area, which is an important scenario for time series database like GreptimeDB. We already have support for its remote read and write protocols. Users can now integrate GreptimeDB as the storage backend to existing Prometheus deployment, but cannot run PromQL query directly on GreptimeDB like SQL. + +This RFC proposes to add support for PromQL. Because it was created in Go, we can't use the existing code easily. For interoperability, performance and extendability, porting its logic to Rust is a good choice. + +# Details + +## Overview +One of the goals is to make use of our existing basic operators, execution model and runtime to reduce the work. So the entire proposal is built on top of Apache Arrow DataFusion. The rewrote PromQL logic is manifested as `Expr` or `Execution Plan` in DataFusion. And both the intermediate data structure and the result is in the format of `Arrow`'s `RecordBatch`. + +The following sections are organized in a top-down manner. Starts with evaluation procedure. Then introduces the building blocks of our new PromQL operation. Follows by an explanation of data model. And end with an example logic plan. + +*This RFC is heavily related to Prometheus and PromQL. It won't repeat some basic concepts of them.* + +## Evaluation + +The original implementation is like an interpreter of parsed PromQL AST. It has two characteristics: (1) Operations are evaluated in place after they are parsed to AST. And some key parameters are separated from the AST because they do not present in the query, but come from other places like another field in the HTTP payload. (2) calculation is performed per timestamp. You can see this pattern many times: +```go +for ts := ev.startTimestamp; ts <= ev.endTimestamp; ts += ev.interval {} +``` + +These bring out two differences in the proposed implementation. First, to make it more general and clear, the evaluation procedure is reorganized into serval phases (and is the same as DataFusion's). And second, data are evaluated by time series (corresponding to "columnar calculation", if think timestamp as row number). + +``` + Logic + Query AST Plan + ─────────► Parser ───────► Logical ────────► Physical ────┐ + Planner Planner │ + │ + ◄───────────────────────────── Executor ◄────────────────┘ + Evaluation Result Execution + Plan +``` + +- Parser + + Provided by [`promql-parser`](https://github.com/GreptimeTeam/promql-parser) crate. Same as the original implementation. + +- Logical Planner + + Generates a logical plan with all the needed parameters. It should accept something like `EvalStmt` in Go's implementation, which contains query time range, evaluation interval and lookback range. + + Another important thing done here is assembling the logic plan, with all the operations baked into logically. Like what's the filter and time range to read, how the data then flows through a selector into a binary operation, etc. Or what's the output schema of every single step. The generated logic plan is deterministic without variables, and can be `EXPLAIN`ed clearly. + +- Physical Planner + + This step converts a logic plan into evaluatable execution plan. There are not many special things like the previous step. Except when a query is going to be executed distributedly. In this case, a logic plan will be divided into serval parts and sent to serval nodes. One physical planner only sees its own part. + +- Executor + + As its name shows, this step calculates data to result. And all new calculation logic, the implementation of PromQL in rust, is placed here. And the rewrote functions are using `RecordBatch` and `Array` from `Arrow` as the intermediate data structure. + + Each "batch" contains only data from single time series. This is from the underlying storage implementation. Though it's not a requirement of this RFC, having this property can simplify some functions. + + Another thing to mention is the rewrote functions don't aware of timestamp or value columns, they are defined only based on the input data types. For example, `increase()` function in PromQL calculates the unbiased delta of data, its implementation here only does this single thing. Let's compare the signature of two implementations: + + - Go + ```go + func funcIncrease(vals []parser.Value, args parser.Expressions) Vector {} + ``` + - Rust + ```rust + fn prom_increase(input: Array) -> Array {} + ``` + + Some unimportant parameters are omitted. The original Go version only writes the logic for `Point`'s value, either float or histogram. But the proposed rewritten one accepts a generic `Array` as input, which can be any type that suits, from `i8` to `u64` to `TimestampNanosecond`. + +## Plan and Expression + +They are structures to express logic from PromQL. The proposed implementation is built on top of DataFusion, thus our plan and expression are in form of `ExtensionPlan` and `ScalarUDF`. The only difference between them in this context is the return type: plan returns a record batch while expression returns a single column. + +This RFC proposes to add four new plans, they are fundamental building blocks that mainly handle data selection logic in PromQL, for the following calculation expressions. + +- `SeriesNormalize` + + Sort data inside one series on the timestamp column, and bias "offset" if has. This plan usually comes after `TableScan` (or `TableScan` and `Filter`) plan. + +- `VectorManipulator` and `MatrixManipulator` + + Corresponding to `InstantSelector` and `RangeSelector`. We don't calculate timestamp by timestamp, thus use "vector" instead of "instant", this image shows the difference. And "matrix" is another name for "range vector", for not confused with our "vector". The following section will detail how they are implemented using Arrow. + + ![instant_and_vector](instant-and-vector.png) + + Due to "interval" parameter in PromQL, data after "selector" (or "manipulator" here) are usually shorter than input. And we have to modify the entire record batch to shorten both timestamp, value and tag columns. So they are formed as plan. + +- `PromAggregator` + + The carrier of aggregator expressions. This should not be very different from the DataFusion built-in `Aggregate` plan, except PromQL can use "group without" to do reverse selection. + +PromQL has around 70 expressions and functions. But luckily we can reuse lots of them from DataFusion. Like unary expression, binary expression and aggregator. We only need to implement those PromQL-specific expressions, like `rate` or `percentile`. The following table lists some typical functions in PromQL, and their signature in the proposed implementation. Other function should be the same. + +| Name | In Param(s) | Out Param(s) | Explain | +|-------------------- |------------------------------------------------------ |-------------- |-------------------- | +| instant_delta | Matrix T | Array T | idelta in PromQL | +| increase | Matrix T | Array T | increase in PromQL | +| extrapolate_factor | - Matrix T
- Array Timestamp
- Array Timestamp | Array T | * | + +*: *`extrapolate_factor` is one of the "dark sides" in PromQL. In short it's a translation of this [paragraph](https://github.com/prometheus/prometheus/blob/0372e259baf014bbade3134fd79bcdfd8cbdef2c/promql/functions.go#L134-L159)* + +To reuse those common calculation logic, we can break them into serval expressions, and assemble in the logic planning phase. Like `rate()` in PromQL can be represented as `increase / extrapolate_factor`. + +## Data Model + +This part explains how data is represented. Following the data model in GreptimeDB, all the data are stored as table, with tag columns, timestamp column and value column. Table to record batch is very straightforward. So an instant vector can be thought of as a row (though as said before, we don't use instant vectors) in the table. Given four basic types in PromQL: scalar, string, instant vector and range vector, only the last "range vector" need some tricks to adapt our columnar calculation. + +Range vector is some sort of matrix, it's consisted of small one-dimension vectors, with each being an input of range function. And, applying range function to a range vector can be thought of kind of convolution. + +![range-vector-with-matrix](range-vector-with-matrix.png) + +(Left is an illustration of range vector. Notice the Y-axis has no meaning, it's just put different pieces separately. The right side is an imagined "matrix" as range function. Multiplying the left side to it can get a one-dimension "matrix" with four elements. That's the evaluation result of a range vector.) + +To adapt this range vector to record batch, it should be represented by a column. This RFC proposes to use `DictionaryArray` from Arrow to represent range vector, or `Matrix`. This is "misusing" `DictionaryArray` to ship some additional information about an array. Because the range vector is sliding over one series, we only need to know the `offset` and `length` of each slides to reconstruct the matrix from an array: + +![matrix-from-array](matrix-from-array.png) + +The length is not fixed, it depends on the input's timestamp. An PoC implementation of `Matrix` and `increase()` can be found in [this repo](https://github.com/waynexia/corroding-prometheus). + +## Example + +The logic plan of PromQL query +```promql +# start: 2022-12-20T10:00:00 +# end: 2022-12-21T10:00:00 +# interval: 1m +# lookback: 30s +sum (rate(request_duration[5m])) by (idc) +``` +looks like + + + +![example](example.png) + +# Drawbacks + +Human-being is always error-prone. It's harder to endeavor to rewrite from the ground and requires more attention to ensure correctness, than translate line-by-line. And, since the evaluator's architecture are different, it might be painful to catch up with PromQL's breaking update (if any) in the future. + +Misusing Arrow's DictionaryVector as Matrix is another point. This hack needs some `unsafe` function call to bypass Arrow's check. And though Arrow's API is stable, this is still an undocumented behavior. + +# Alternatives + +There are a few alternatives we've considered: +- Wrap the existing PromQL's implementation via FFI, and import it to GreptimeDB. +- Translate its evaluator engine line-by-line, rather than rewrite one. +- Integrate the Prometheus server into GreptimeDB via RPC, making it a detached execution engine for PromQL. + +The first and second options are making a separate execution engine in GreptimeDB, they may alleviate the pain during rewriting, but will have negative impacts to afterward evolve like resource management. And introduce another deploy component in the last option will bring a complex deploy architecture. + +And all of them are more or less redundant in data transportation that affects performance and resources. The proposed built-in executing procedure is also easy to integrate and expose to the existing SQL interface GreptimeDB currently provides. Some concepts in PromQL like sliding windows (range vector in PromQL) are very convenient and ergonomic in analyzing series data. This makes it not only a PromQL evaluator, but also an enhancement to our query system. \ No newline at end of file