Integration of FPGAs in Database Management Systems: Challenges and Opportunities

In the presence of exponential growth of the data produced every day in volume, velocity, and variety, online analytical processing (OLAP) is becoming increasingly challenging. FPGAs offer hardware reconfiguration to enable query-specific pipelined and parallel data processing with the potential of maximizing throughput, speedup as well as energy and resource efficiency. However, dynamically configuring hardware accelerators to match a given OLAP query is a complex task. Furthermore, resource limitations restrict the coverage of OLAP operators. As a consequence, query optimization through partitioning the processing onto components of heterogeneous hardware/software systems seems a promising direction. While there exists work on operator placement for heterogeneous systems, it mainly targets systems combining multi-core CPUs with GPUs. However, an inclusion of FPGAs, which uniquely offer efficient and high-throughput pipelined processing at the expense of potential reconfiguration overheads, is still an open problem. We postulate that this challenge can only be met in a scalable fashion when providing a cooperative optimization between global and FPGA-specific optimizers. We demonstrate how this is addressed in two current research projects on FPGA-based query processing.

[1]  Jürgen Teich,et al.  FPGA-Based Dynamically Reconfigurable SQL Query Processing , 2016, ACM Trans. Reconfigurable Technol. Syst..

[2]  Wei Zhang,et al.  Relational query processing on OpenCL-based FPGAs , 2016, 2016 26th International Conference on Field Programmable Logic and Applications (FPL).

[3]  Bharat Sukhwani,et al.  Large Payload Streaming Database Sort and Projection on FPGAs , 2013, 2013 25th International Symposium on Computer Architecture and High Performance Computing.

[4]  Jens Teubner,et al.  Robust Query Processing in Co-Processor-accelerated Databases , 2016, SIGMOD Conference.

[5]  Kenneth A. Ross,et al.  Rethinking SIMD Vectorization for In-Memory Databases , 2015, SIGMOD Conference.

[6]  Surajit Chaudhuri,et al.  Rethinking Query Processing for Energy Efficiency: Slowing Down to Win the Race. , 2011 .

[7]  Wolfgang Lehner,et al.  Local vs. Global Optimization: Operator Placement Strategies in Heterogeneous Environments , 2015, EDBT/ICDT Workshops.

[8]  Gustavo Alonso,et al.  Glacier: a query-to-hardware compiler , 2010, SIGMOD Conference.

[9]  Jim Tørresen,et al.  FPGASort: a high performance sorting architecture exploiting run-time reconfiguration on fpgas for large problem sorting , 2011, FPGA '11.

[10]  Bogdan Raducanu,et al.  Micro adaptivity in Vectorwise , 2013, SIGMOD '13.

[11]  Bharat Sukhwani,et al.  A Hardware/Software Approach for Database Query Acceleration with FPGAs , 2014, International Journal of Parallel Programming.

[12]  Samuel Madden,et al.  Voodoo - A Vector Algebra for Portable Database Performance on Modern Hardware , 2016, Proc. VLDB Endow..

[13]  Volker Markl,et al.  The Operator Variant Selection Problem on Heterogeneous Hardware , 2015, ADMS@VLDB.

[14]  Viktor Leis,et al.  Compiling Database Queries into Machine Code , 2014, IEEE Data Eng. Bull..

[15]  Gustavo Alonso,et al.  Streams on Wires - A Query Compiler for FPGAs , 2009, Proc. VLDB Endow..

[16]  Gunter Saake,et al.  Efficient co-processor utilization in database query processing , 2013, Inf. Syst..

[17]  Peter Benjamin Volk,et al.  GPU join processing revisited , 2012, DaMoN '12.

[18]  Yuan Yuan,et al.  The Yin and Yang of Processing Data Warehousing Queries on GPU Devices , 2013, Proc. VLDB Endow..

[19]  Sebastian Breß,et al.  Why it is time for a HyPE: A Hybrid Query Processing Engine for Efficient GPU Coprocessing in DBMS , 2013, Proc. VLDB Endow..

[20]  Gustavo Alonso,et al.  FPGA-based Data Partitioning , 2017, SIGMOD Conference.

[21]  Jignesh M. Patel,et al.  Rethinking Query Processing for Energy Efficiency: Slowing Down to Win the Race , 2011, IEEE Data Eng. Bull..

[22]  Gustavo Alonso,et al.  Centaur: A Framework for Hybrid CPU-FPGA Databases , 2017, 2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[23]  Gustavo Alonso,et al.  Runtime Parameterizable Regular Expression Operators for Databases , 2016, 2016 IEEE 24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[24]  Gustavo Alonso,et al.  Accelerating Pattern Matching Queries in Hybrid CPU-FPGA Architectures , 2017, SIGMOD Conference.

[25]  Pradeep Dubey,et al.  FAST: fast architecture sensitive tree search on modern CPUs and GPUs , 2010, SIGMOD Conference.

[26]  Sebastian Breß The Design and Implementation of CoGaDB: A Column-oriented GPU-accelerated DBMS , 2014, Datenbank-Spektrum.

[27]  Jens Teubner,et al.  FPGA: what's in it for a database? , 2009, SIGMOD Conference.

[28]  Tilmann Rabl,et al.  Generating custom code for efficient query execution on heterogeneous processors , 2017, The VLDB Journal.

[29]  Martin L. Kersten,et al.  Generic Database Cost Models for Hierarchical Memory Systems , 2002, VLDB.

[30]  Moriyoshi Ohara,et al.  A Dynamically Reconfigurable Equi-Joiner on FPGA , 2015 .

[31]  Jürgen Teich,et al.  A co-design approach for accelerated SQL query processing via FPGA-based data filtering , 2015, 2015 International Conference on Field Programmable Technology (FPT).

[32]  Gustavo Alonso,et al.  Distributed Join Algorithms on Thousands of Cores , 2017, Proc. VLDB Endow..

[33]  Pradeep Dubey,et al.  Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs , 2009, Proc. VLDB Endow..

[34]  Bingsheng He,et al.  Relational query coprocessing on graphics processors , 2009, TODS.

[35]  Xiaorui Wang,et al.  PET: Reducing Database Energy Cost via Query Optimization , 2012, Proc. VLDB Endow..

[36]  Wolfgang Lehner,et al.  Heterogeneity-Aware Operator Placement in Column-Store DBMS , 2014, Datenbank-Spektrum.

[37]  Kenneth A. Ross,et al.  Optimizing select conditions on GPUs , 2013, DaMoN '13.

[38]  Jens Teubner,et al.  Pipelined Query Processing in Coprocessor Environments , 2018, SIGMOD Conference.

[39]  Bingsheng He,et al.  OmniDB: Towards Portable and Efficient Query Processing on Parallel CPU/GPU Architectures , 2013, Proc. VLDB Endow..

[40]  Jürgen Teich,et al.  Hybrid energy-aware reconfiguration management on Xilinx Zynq SoCs , 2016, 2016 International Conference on ReConFigurable Computing and FPGAs (ReConFig).

[41]  Constantin Pohl Exploiting Manycore Architectures for Parallel Data Stream Processing , 2017, Grundlagen von Datenbanken.

[42]  Viktor K. Prasanna,et al.  Fast Regular Expression Matching Using FPGAs , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[43]  Kunle Olukotun,et al.  Hardware acceleration of database operations , 2014, FPGA.

[44]  Bharat Sukhwani,et al.  Accelerating Join Operation for Relational Databases with FPGAs , 2013, 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.

[45]  Jürgen Teich,et al.  Optimistic regular expression matching on FPGAs for near-data processing , 2018, DaMoN.

[46]  Jürgen Teich,et al.  ReOrder: Runtime datapath generation for high-throughput multi-stream processing , 2016, 2016 International Conference on ReConFigurable Computing and FPGAs (ReConFig).

[47]  Wolfgang Lehner,et al.  Adaptive Work Placement for Query Processing on Heterogeneous Computing Resources , 2017, Proc. VLDB Endow..

[48]  Gerhard Fettweis,et al.  Query processing on low-energy many-core processors , 2015, 2015 31st IEEE International Conference on Data Engineering Workshops.

[49]  Volker Markl,et al.  Hardware-Oblivious Parallelism for In-Memory Column-Stores , 2013, Proc. VLDB Endow..

[50]  Gustavo Alonso,et al.  Sorting networks on FPGAs , 2012, The VLDB Journal.

[51]  Erik Maehle,et al.  An Approach for Performance Estimation of Hybrid Systems with FPGAs and GPUs as Coprocessors , 2012, ARCS.