Skip to main content
Log in

A Hardware/Software Approach for Database Query Acceleration with FPGAs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Complex analytics queries often involve expensive operations that may require large computational runtimes leading to slow query responsiveness and hampering real-time performance. Moreover, running these expensive analytics queries inside traditional online transaction processing (OLTP) systems for real-time analytics can affect the performance of mission-critical OLTP queries. On the other hand, support for real-time analytics is considered vital for important business insights and improved market responsiveness. In this paper, we try to address the needs of real-time analytics by enabling hardware acceleration of complex database query operations such as predicate evaluation, sort and projection. While projection helps reduce the amount of data being processed by subsequent query operations, sort is central to most database queries, even those not involving an explicit sort operation. Our system involves FPGA-based composable accelerator for offloading the analytics queries from the host CPU running the OLTP workload. The FPGA-accelerated database system contains accelerator kernels for various database operations and automatic transformation of query operations into calls to these hardware kernels for seamless integration of the accelerator into the database system. Based on the query semantics, each accelerator kernel can be tailored by software to execute specific database operations and different kernels can be fused together to compose a query accelerator. Our query transformation algorithm creates a query-specific control block to customize the accelerator without requiring FPGA-reconfiguration.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. Sukhwani, B., et al.: Database analytics acceleration using FPGAs. In: Proceedings of International Conference on Parallel Architectures and Compilation Techniques (PACT), pp. 411–420 (2012)

  2. Halstead, R., et al.: Accelerating join operation for relational databases with FPGAs. In: IEEE CS, Proc. IEEE Symp. FCCM, pp. 17–20 (2013)

  3. Sukhwani, B., et al.: Large payload streaming database sort and projection on FPGAs. In: Proceedings of \(25^{\rm th}\) International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD) (2013)

  4. Krueger, J., et al.: Fast updates on read optimized databases using multi core CPUs. In: Proceedings of the VLDB Endowment, vol. 5, No. 1, August (2012)

  5. Low, B., Ooi, B., Wong, C.: Exploration on scalability of database bulk insertion with multi-threading. Int. J. New Comput. Archit. Appl. 1(3), 553–564 (2011)

  6. Johnson, R., et al.: Rowwise parallel predicate evaluation. In: Proc. Int. Conf. VLDB’08

  7. Zhou, J., Ross, K.A.: Implementing database operations using SIMD instructions. In: ACM SIGMOD, pp. 145–156 (2002)

  8. Satish N., et al.: Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort. In: ACM SIGMOD (2010)

  9. Jean, J.S., Dong, G., Zhang, H., Guo, X., Zhang, B.: Query processing with an FPGA coprocessor board. In: Proceedings of the 1st International Conference on Engineering of Reconfigurable Systems and Algorithms (2001)

  10. Mueller, R., Teubner, J., Alonso, G.: Glacier: a query-to-hardware compiler. In: ACM SIGMOD, pp. 1159–1162 (2010)

  11. Mueller, R., Teubner, J., Alonso, G.: Streams on wires—a query compiler for FPGAs. Proc. VLDB Endow. 2(1), 229–240 (2009)

    Article  Google Scholar 

  12. Horikawa, T.: An unexpected scalability bottleneck in a DBMS: a hidden pitfall in implementing mutual exclusion. In: Parallel and Distributed Computing and Systems (2011)

  13. Scofield, T.C., et al.: XtremeData dbX: an FPGA-based data warehouse appliance. Comput. Sci. Eng. 12, 66–73 (2010)

    Article  Google Scholar 

  14. Johnson, R., Raman, V., Sidle, R., Swart, G.: Rowwise parallel predicate evaluation. In: Proceedings of the International Conference on VLDB’08

  15. Dennl, C., Ziener, D., Tiech, J.: On-the-fly composition FPGA based SQL query accelerators using a partially reconfigurable module library. In: Proc. IEEE Symp. FCCM, 2012. IEEE, pp. 45–52 (2012)

  16. Govindaraju, N., Raghuvanshi, N., Henson, M., Tuft, D., Manocha, D.: GPU Tera- Sort: high performance graphics co-processor sorting for large database management. In: Proceedings of the 2006 ACM SIGMOD International Conference on Management of Data, June 26–29, Chicago, IL, USA (2006)

  17. Batcher, K.E.: Sorting networks and their applications. In: Proceedings of the AFIPS Spring Joint Computer Conference, vol. 32, pp. 307–314 (1968)

  18. Mueller, R., Jens, T., Gustavo, A.: Sorting networks on FPGAs. Int. J. Very Large Databases 21(1), 1–23 (2012)

    Article  Google Scholar 

  19. Perez-Andrade, R., Cumplido, R., Feregrino-Uribe, C., Del Campo, F.M.: A versatile linear insertion sorter based on an FIFO scheme. Microelectron. J. 40(12), 1705–1713 (2009)

    Article  Google Scholar 

  20. Colavita, A.A., Cicuttin, A., Fratnik, F., Capello, G.: SORTCHIP: a VLSI implementation of a hardware algorithm for continuous data sorting. IEEE J. Solid-State Circuits 38(6), 1076–1079 (2003)

    Article  Google Scholar 

  21. Hirschil, B., Yaroslavsky, L.P.: FPGA implementations of sorters for non-linear filters. In: Eusipco 2004: Proceedings of the XII European Signal Processing Conference, vol. 1, pp. 541–544. Vienna, Austria (2004)

  22. Harkins, J., El-Ghazawi, T., El-Araby, E., Huang, M.: Performance of sorting algorithms on the SRC 6 reconfigurable computer. In: Proceedings of the 2005 IEEE International Conference on Field-Programmable Technology, pp. 295–296, 11–14 Dec (2005)

  23. Marcelino, R., Neto, H., Cardoso, J.M.P.: Sorting units for FPGA-based embedded systems. In: Distributed Embedded Systems: Design, Middleware and Resources, vol. 271 (2008)

  24. Paul, R., Sau, S., Chakrabarti, A.: Architecture for real time continuous sorting on large width data volume for FPGA based applications. In: Computing Research Repository (CoRR), vol. abs/1206.1567 (2012)

  25. Graefe, G.: Implementing sorting in database systems. In: ACM Computer Survey, vol. 38, No. 3. (2006)

  26. Knuth, D.E.: The Art of Computer Programming, Vol. 3—Sorting and Searching. Addison-Wesley, Boston (1973)

    Google Scholar 

  27. IBM Corporation, z/Architecture Principles of Operations, SA22-7832-09, 7–118–7–124, 7–351–7–356, A-53–A-60, Sept 2012

  28. Stack, M.: The Theory Behind the z/Architecture Sort Assist Instructions, Share, Session 8121, Aug 10–15 2008

  29. www.picocomputing.com/pdf/SC5_sm.pdf. Pico Computing Inc

  30. Sukhwani, B., et al.: Database analytics: a reconfigurable-computing approach. IEEE Micro 34(1), 19–29 (2014)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bharat Sukhwani.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Sukhwani, B., Thoennes, M., Min, H. et al. A Hardware/Software Approach for Database Query Acceleration with FPGAs. Int J Parallel Prog 43, 1129–1159 (2015). https://doi.org/10.1007/s10766-014-0327-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-014-0327-4

Keywords

Navigation