%PDF-1.4
%ÐÔÅØ
1 0 obj
<< /S /GoTo /D (chapter.1) >>
endobj
4 0 obj
(Introduction)
endobj
5 0 obj
<< /S /GoTo /D (section.1.1) >>
endobj
8 0 obj
(Motivation)
endobj
9 0 obj
<< /S /GoTo /D (subsection.1.1.1) >>
endobj
12 0 obj
(Research questions)
endobj
13 0 obj
<< /S /GoTo /D (subsection.1.1.2) >>
endobj
16 0 obj
(Contributions)
endobj
17 0 obj
<< /S /GoTo /D (section.1.2) >>
endobj
20 0 obj
(Outline)
endobj
21 0 obj
<< /S /GoTo /D (chapter.2) >>
endobj
24 0 obj
(Preliminaries)
endobj
25 0 obj
<< /S /GoTo /D (section.2.1) >>
endobj
28 0 obj
(Relational database systems)
endobj
29 0 obj
<< /S /GoTo /D (section.2.2) >>
endobj
32 0 obj
(VectorWise vectorized execution)
endobj
33 0 obj
<< /S /GoTo /D (subsection.2.2.1) >>
endobj
36 0 obj
(Architecture of Ingres VectorWise system)
endobj
37 0 obj
<< /S /GoTo /D (subsection.2.2.2) >>
endobj
40 0 obj
(Expressions and primitives)
endobj
41 0 obj
<< /S /GoTo /D (subsection.2.2.3) >>
endobj
44 0 obj
(VectorWise performance)
endobj
45 0 obj
<< /S /GoTo /D (section.2.3) >>
endobj
48 0 obj
(Modern hardware architecture)
endobj
49 0 obj
<< /S /GoTo /D (subsection.2.3.1) >>
endobj
52 0 obj
(CPU)
endobj
53 0 obj
<< /S /GoTo /D (subsection.2.3.2) >>
endobj
56 0 obj
(Pipelined execution)
endobj
57 0 obj
<< /S /GoTo /D (subsection.2.3.3) >>
endobj
60 0 obj
(Hazards and how to deal with them)
endobj
61 0 obj
<< /S /GoTo /D (subsection.2.3.4) >>
endobj
64 0 obj
(CPU caches)
endobj
65 0 obj
<< /S /GoTo /D (subsection.2.3.5) >>
endobj
68 0 obj
(SIMD instructions)
endobj
69 0 obj
<< /S /GoTo /D (subsection.2.3.6) >>
endobj
72 0 obj
(Virtual memory and TLB cache)
endobj
73 0 obj
<< /S /GoTo /D (section.2.4) >>
endobj
76 0 obj
(Related work on JIT query compilation)
endobj
77 0 obj
<< /S /GoTo /D (subsection.2.4.1) >>
endobj
80 0 obj
(Origins)
endobj
81 0 obj
<< /S /GoTo /D (subsection.2.4.2) >>
endobj
84 0 obj
(HIQUE)
endobj
85 0 obj
<< /S /GoTo /D (subsection.2.4.3) >>
endobj
88 0 obj
(Hyper)
endobj
89 0 obj
<< /S /GoTo /D (subsection.2.4.4) >>
endobj
92 0 obj
(JAMDB)
endobj
93 0 obj
<< /S /GoTo /D (subsection.2.4.5) >>
endobj
96 0 obj
(Other)
endobj
97 0 obj
<< /S /GoTo /D (section.2.5) >>
endobj
100 0 obj
(Summary)
endobj
101 0 obj
<< /S /GoTo /D (chapter.3) >>
endobj
104 0 obj
(Vectorization vs. Compilation)
endobj
105 0 obj
<< /S /GoTo /D (section.3.1) >>
endobj
108 0 obj
(Experiments overview)
endobj
109 0 obj
<< /S /GoTo /D (subsection.3.1.1) >>
endobj
112 0 obj
(Experimental setup)
endobj
113 0 obj
<< /S /GoTo /D (section.3.2) >>
endobj
116 0 obj
(Case study: Project)
endobj
117 0 obj
<< /S /GoTo /D (subsection.3.2.1) >>
endobj
120 0 obj
(Vectorized Execution)
endobj
121 0 obj
<< /S /GoTo /D (subsection.3.2.2) >>
endobj
124 0 obj
(Loop-compiled Execution)
endobj
125 0 obj
<< /S /GoTo /D (subsection.3.2.3) >>
endobj
128 0 obj
(SIMDization using SSE)
endobj
129 0 obj
<< /S /GoTo /D (subsection.3.2.4) >>
endobj
132 0 obj
(Tuple-at-a-time compilation)
endobj
133 0 obj
<< /S /GoTo /D (subsection.3.2.5) >>
endobj
136 0 obj
(Effect of vector length)
endobj
137 0 obj
<< /S /GoTo /D (subsection.3.2.6) >>
endobj
140 0 obj
(Project under Select and compute-all optimization)
endobj
141 0 obj
<< /S /GoTo /D (section.3.3) >>
endobj
144 0 obj
(Case study: Conjunctive select)
endobj
145 0 obj
<< /S /GoTo /D (subsection.3.3.1) >>
endobj
148 0 obj
(Vectorized execution)
endobj
149 0 obj
<< /S /GoTo /D (subsection.3.3.2) >>
endobj
152 0 obj
(Loop-compiled execution)
endobj
153 0 obj
<< /S /GoTo /D (section.3.4) >>
endobj
156 0 obj
(Case study: Disjunctive select)
endobj
157 0 obj
<< /S /GoTo /D (subsection.3.4.1) >>
endobj
160 0 obj
(Vectorized execution)
endobj
161 0 obj
<< /S /GoTo /D (subsection.3.4.2) >>
endobj
164 0 obj
(Loop-compiled execution)
endobj
165 0 obj
<< /S /GoTo /D (section.3.5) >>
endobj
168 0 obj
(Synthesis: Selection and Projection)
endobj
169 0 obj
<< /S /GoTo /D (section.3.6) >>
endobj
172 0 obj
(Case Study: Hash Join)
endobj
173 0 obj
<< /S /GoTo /D (subsection.3.6.1) >>
endobj
176 0 obj
(Vectorized implementation)
endobj
177 0 obj
<< /S /GoTo /D (subsection.3.6.2) >>
endobj
180 0 obj
(Loop-compiled implementation)
endobj
181 0 obj
<< /S /GoTo /D (subsection.3.6.3) >>
endobj
184 0 obj
(Build phase)
endobj
185 0 obj
<< /S /GoTo /D (subsection.3.6.4) >>
endobj
188 0 obj
(Probe lookup: bucket chain traversal)
endobj
189 0 obj
<< /S /GoTo /D (subsection.3.6.5) >>
endobj
192 0 obj
(Probe fetching)
endobj
193 0 obj
<< /S /GoTo /D (subsection.3.6.6) >>
endobj
196 0 obj
(Reduced vector length)
endobj
197 0 obj
<< /S /GoTo /D (subsection.3.6.7) >>
endobj
200 0 obj
(Partial Compilation)
endobj
201 0 obj
<< /S /GoTo /D (section.3.7) >>
endobj
204 0 obj
(Software engineering aspects of Vectorization and Compilation)
endobj
205 0 obj
<< /S /GoTo /D (subsection.3.7.1) >>
endobj
208 0 obj
(System complexity)
endobj
209 0 obj
<< /S /GoTo /D (subsection.3.7.2) >>
endobj
212 0 obj
(Compilation overheads)
endobj
213 0 obj
<< /S /GoTo /D (subsection.3.7.3) >>
endobj
216 0 obj
(Profiling and runtime performance optimization)
endobj
217 0 obj
<< /S /GoTo /D (section.3.8) >>
endobj
220 0 obj
(Summary)
endobj
221 0 obj
<< /S /GoTo /D (chapter.4) >>
endobj
224 0 obj
(JIT Compilation infrastructure)
endobj
225 0 obj
<< /S /GoTo /D (section.4.1) >>
endobj
228 0 obj
(Compilers)
endobj
229 0 obj
<< /S /GoTo /D (subsection.4.1.1) >>
endobj
232 0 obj
(GNU Compiler Collection \205 gcc)
endobj
233 0 obj
<< /S /GoTo /D (subsection.4.1.2) >>
endobj
236 0 obj
(Intel Compiler \205 icc)
endobj
237 0 obj
<< /S /GoTo /D (subsection.4.1.3) >>
endobj
240 0 obj
(LLVM and clang)
endobj
241 0 obj
<< /S /GoTo /D (section.4.2) >>
endobj
244 0 obj
(VectorWise compilation)
endobj
245 0 obj
<< /S /GoTo /D (subsection.4.2.1) >>
endobj
248 0 obj
(Build time)
endobj
249 0 obj
<< /S /GoTo /D (subsection.4.2.2) >>
endobj
252 0 obj
(TPC-H performance)
endobj
253 0 obj
<< /S /GoTo /D (section.4.3) >>
endobj
256 0 obj
(Implementation)
endobj
257 0 obj
<< /S /GoTo /D (subsection.4.3.1) >>
endobj
260 0 obj
(External compiler and dynamic linking)
endobj
261 0 obj
<< /S /GoTo /D (subsection.4.3.2) >>
endobj
264 0 obj
(Using LLVM and clang internally)
endobj
265 0 obj
<< /S /GoTo /D (subsection.4.3.3) >>
endobj
268 0 obj
(JIT compilation infrastructure API)
endobj
269 0 obj
<< /S /GoTo /D (subsection.4.3.4) >>
endobj
272 0 obj
(Evaluation)
endobj
273 0 obj
<< /S /GoTo /D (section.4.4) >>
endobj
276 0 obj
(Summary)
endobj
277 0 obj
<< /S /GoTo /D (chapter.5) >>
endobj
280 0 obj
(JIT primitive generation and management)
endobj
281 0 obj
<< /S /GoTo /D (section.5.1) >>
endobj
284 0 obj
(Source templates)
endobj
285 0 obj
<< /S /GoTo /D (subsection.5.1.1) >>
endobj
288 0 obj
(Primitive templates)
endobj
289 0 obj
<< /S /GoTo /D (subsection.5.1.2) >>
endobj
292 0 obj
(Source preamble)
endobj
293 0 obj
<< /S /GoTo /D (section.5.2) >>
endobj
296 0 obj
(JIT opportunities detection and injection)
endobj
297 0 obj
<< /S /GoTo /D (subsection.5.2.1) >>
endobj
300 0 obj
(Fragments tagging pass)
endobj
301 0 obj
<< /S /GoTo /D (subsection.5.2.2) >>
endobj
304 0 obj
(Fragments generation and collapsing pass)
endobj
305 0 obj
<< /S /GoTo /D (subsection.5.2.3) >>
endobj
308 0 obj
(Compilation pass)
endobj
309 0 obj
<< /S /GoTo /D (subsection.5.2.4) >>
endobj
312 0 obj
(Limitations)
endobj
313 0 obj
<< /S /GoTo /D (section.5.3) >>
endobj
316 0 obj
(Source code generation)
endobj
317 0 obj
<< /S /GoTo /D (subsection.5.3.1) >>
endobj
320 0 obj
(snode trees)
endobj
321 0 obj
<< /S /GoTo /D (subsection.5.3.2) >>
endobj
324 0 obj
(JitContext)
endobj
325 0 obj
<< /S /GoTo /D (subsection.5.3.3) >>
endobj
328 0 obj
(Code generation)
endobj
329 0 obj
<< /S /GoTo /D (section.5.4) >>
endobj
332 0 obj
(Primitives storage and maintenance)
endobj
333 0 obj
<< /S /GoTo /D (section.5.5) >>
endobj
336 0 obj
(Summary)
endobj
337 0 obj
<< /S /GoTo /D (chapter.6) >>
endobj
340 0 obj
(JIT primitives evaluation)
endobj
341 0 obj
<< /S /GoTo /D (section.6.1) >>
endobj
344 0 obj
(TPC-H Query 1)
endobj
345 0 obj
<< /S /GoTo /D (section.6.2) >>
endobj
348 0 obj
(TPC-H Query 6)
endobj
349 0 obj
<< /S /GoTo /D (section.6.3) >>
endobj
352 0 obj
(TPC-H Query 12)
endobj
353 0 obj
<< /S /GoTo /D (section.6.4) >>
endobj
356 0 obj
(TPC-H Query 19)
endobj
357 0 obj
<< /S /GoTo /D (section.6.5) >>
endobj
360 0 obj
(Summary)
endobj
361 0 obj
<< /S /GoTo /D (chapter.7) >>
endobj
364 0 obj
(Conclusions and future work)
endobj
365 0 obj
<< /S /GoTo /D (section.7.1) >>
endobj
368 0 obj
(Contributions)
endobj
369 0 obj
<< /S /GoTo /D (section.7.2) >>
endobj
372 0 obj
(Answers to research questions)
endobj
373 0 obj
<< /S /GoTo /D (section.7.3) >>
endobj
376 0 obj
(Future work)
endobj
377 0 obj
<< /S /GoTo /D [378 0 R /Fit ] >>
endobj
380 0 obj <<
/Length 698
/Filter /FlateDecode
>>
stream
xÚ¥ÉnÛ0ïy
Xq'{K\M´i½èB-ZÆOßáâÔ)¢ËE¶Hñ¾áñüàå `ÎùUB0ETêDR¨Jæuò)]4ö.£85]oô!Ë©äi{~/3MÓ²ëK·w}ªØUÍ1.Ù`¤qÔ=ɤJËj\
^´ÀA´ éy9\u9ت?+v};¦o³Ê¦2á¥lêxÊTNëºlà\tò$?%8É)CËEHã¹4Ö=DËõ¾ÌFã¿È+úÞ1Çexø¨à<É9E u6®ìØo ¶êolP E!6ç^!§±FĽÆlkÓdD¦KM²Q¦¨^,.áÃ>ÁDT»õåÂ?%Iü\(!àÊÛ
·vû!·M>ص ]Õì
êØ6aÁ6N
¡:p)Á-3ÍRS
mg7¦¿M1ýnªÑ=²û9¦ÖUV"*¢ó²
§¡zÛغªc4lô7yw~±O?DäÓéÛÉtk*.ã±^³*¤Mwgû¶{µÏj9LØìª
)[_·¨ôC¾³ñq¼qÚºÇýs½Àø
YJE¶ /mïJ^Ñù@`H¤t4vb»>vLgÊÚ<
EE~©·MµÙ箾h8öÚܱ)ý¤@Ìyqn·Fwcú ~=|7Áðç!¬?à_#Oâhtã:|
`nƦ6áíEÚ\µ¿Ê'¨â23Uëï ?cûýi:9«ßQ"ÿCIý¥\h$!½\`èòæÑømܶ)°¿¦óÂ
endstream
endobj
378 0 obj <<
/Type /Page
/Contents 380 0 R
/Resources 379 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 386 0 R
>> endobj
381 0 obj <<
/D [378 0 R /XYZ 84.039 786.197 null]
>> endobj
382 0 obj <<
/D [378 0 R /XYZ 85.039 748.335 null]
>> endobj
379 0 obj <<
/Font << /F17 383 0 R /F16 384 0 R /F20 385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
389 0 obj <<
/Length 619
/Filter /FlateDecode
>>
stream
xÚT;sÛ0Þý+´Uº«Ösì+×ö.S´µh ¶Ù³(¤Ë¿/HP&íÒ oÀ÷QïÛÕÍ-«"§¼äQ»XÆÒ¦*£¢æiÃYÔöÑ·ø~:%ë
A¥õVUÄÆ
¨C6ùÑ~½¹åYÄ°AQøfY´ÎyÊÚ|
ÛWñ#Ö×MüEÅݨ¾g,×ö ,ÅíÈuÒ`ð3Xiç0ÒPÖó³dBêAS`¿ºqë é×£¢d¡z·C´feÚl*´É+=ÅËXzYÅ»éè¦>rÓ¬¨hø5IíÏâæ
áݨ©lÉëa¯!èãwÂX?ðâ+ããpï}'AuúIçA2ÍËýàrºÈ ¶yÏ Fî°ì¬©Ó¦{¿ìáÿ Îî w¢î(§"KZp]!"q§/Ll@wË¡ÃÖ+jTÁåî뤴¡Ò0áulàþ$C¸ñãN[+¤òCk¡7ç¡ÌüÌ ¡ìbÆ>#Ík/¹Øú#ñ§Wàôsâ1'sK@þù"6;pK$Ì~¤ÌOè,yü}0_ø«<ó¤GTê¸~Òn=Ê¡Ü,ÜBª}è=£=²{ý¢ô^X9ÄïpüÑuvÃ~ë¦`OUF|òûÍL¦*dB×5Ð.DoߥúÊðÇ µtZtz>Ù1DvâÒÆguÂZѹîøËßxf=*<üb¾ì¼Áxñ,±üêA¯>µ«ßòõ
endstream
endobj
388 0 obj <<
/Type /Page
/Contents 389 0 R
/Resources 387 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 386 0 R
>> endobj
390 0 obj <<
/D [388 0 R /XYZ 84.039 786.197 null]
>> endobj
387 0 obj <<
/Font << /F17 383 0 R /F20 385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
393 0 obj <<
/Length 1329
/Filter /FlateDecode
>>
stream
xÚuÉvÛ6ðî¯ÐzÏb¹dorì4Në´yRCÓDBTÒòõÁ¹aO fßw^Gù,2ËâÙf7ó2ãd¶\AY.gzöXm]oeÕÏÿÞ¼l2,#dXDeE:[ÄY
)qÜË^n¥SóE¢FîU«Ì<.DO0wv½j=v²bÒÞè¦ZÙ£U½ìug ¢Ç¹xF²%k¢>ãÝp<Îîl¯ÍÐÂ(S_õ¶QèÃ,³ ËÈØZU´ ¤ÎIeÏx-D#Í<û|pqC
¤"ÎõûߺýnJ°%¶ZÍô}G§ëgo¡49Úìlé¡YãÈÓEPk/ÒÜ@Ñâ"{e8F䥦&pÕµGÝ0ÔQT¥e£¿)&å{+1/H³ë,Õó<[
Ùbêaò ¥xdp¬LÚ[Àܨ`<ç)ûHâLü9/R°«ïìGív÷´FYqJ! ¼ÁdïI¥cj¨>¦5Ùêý^Ym¦GK¾0ì Ù¬ÄHx]K(+}q©Òé+ðä¬ TõöMMy6UÊIO2CæÂ[è¼ïõ⬪:[;zp¦¡bhKþÖʲÞW|pDç
ö·2ÆLM¹°~|ºûÁ a¨0N½ÆÜy;H:u;jGÈê8 ¨ ;îêz$2Ìokìsa¹ñwã4ÙÝÀ\ÆjâTM5¸nG5>ÖzFa"® 0ïj
b_
Ý\fx4Låoq6òw#üÄ#ïÒ}¹PhÇ
i
[f*üй(h«
µ_õWÄyMEÙhÔ@°
#³V
IBEaõôpL'fIî3á·èÞû¬rCÓ»ÑB]l¼&pºíaÖÅÌ©¦3* ¬~ !LÇØæXq6%~ìéA[
îcè=óU{ë½¼Px²sìm¥ÅÁàµcKá*JFïάÐM¹´¾:3¹õ wè-½ÒÜW<¾§XÕDzÒ¾àörd-N~,"·ò«¯ªPÖh~öÞâ*òs©~ÀÊ)Þ>n@eý{F8xQFOrg%NªÐyÃYà@O®:â°B¿ÖÐe_8vÃl,!¤ëP½eyí±¹|#|Lo'º}Ì{¤XXÊô$>,]hjPâèí÷ÐsFk."p~DáPÿ°¨ FðWéÅß**Ã`d³EEÈÖþªÎ§y ?ħÿWÌåÿWã
w»%Æß
pI
£|"ñrU·ct¼»5οÌêõË(XåKã7<én×JF¸
³p³ÆþCÜâ£E?&wÄzÏ?H«$Ý*bAÑdTFk®Æ&äê£ñÛ ×cW_óM.À¯+xUü¤¬âeÄ~òxíÅgß;£ÁðktGåUÔþ¾QÞõ÷øMÀvt»qvçèÿT#¾ b"¾G¢Ü[eu·Z?æiõn
b~yxzx·ù!AÊ:éãý3ô~÷cá$/þQØ~ ææasó/ D4
endstream
endobj
392 0 obj <<
/Type /Page
/Contents 393 0 R
/Resources 391 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 386 0 R
>> endobj
391 0 obj <<
/Font << /F17 383 0 R /F15 394 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
397 0 obj <<
/Length 8
/Filter /FlateDecode
>>
stream
xÚ
endstream
endobj
396 0 obj <<
/Type /Page
/Contents 397 0 R
/Resources 395 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 386 0 R
>> endobj
398 0 obj <<
/D [396 0 R /XYZ 69.866 786.197 null]
>> endobj
395 0 obj <<
/ProcSet [ /PDF ]
>> endobj
438 0 obj <<
/Length 1268
/Filter /FlateDecode
>>
stream
xÚíMw8÷ù^TBH³kÓô49ÍIZ»í¢3j+ <òÑ_?I iO§qf
û>Ü{ß«W¯f;/Þ d(á ÌN&F £ID(Ì/`·È@%í¡þ¼xã ¢¹NB¦Bc{Aöõ-1¨Tú¸¨çU¦ÖÜh÷~Á"ÈôS»õÍÂÇ9!õû~ü¢ 1°&a""&Ø$D8âxÆrB8,ªì< ¤
ÞAH7&'Ü¡ëÖYfáÑkxg ø Kªysp¦ócðO-K²Ô£[¯AÂ$ð.ØÑ0Õ®IT*ûZ;³QTÌ/¶Òú%vvTWË,A(è¦óTõF4Cû´!D,Âh¶$hìôáXÉe¶ÊòTe²ü_~4êêázaø $¤KÓ×X¤Uú5-¥íråUYÉ©oÃ0x/ßOÇ@ΫB}Î,ÎM·kÎeßåÂr^[-X¯É î^÷^:ÍË*~\V'ö¸*]
#Í }]@V¿n$FØoG&N¯h{k ûûËÒJùÙiî^÷ZédF( ¥iî|D9å