Database management systems have traditionally been implemented entirely in software. However, adding hardware to database cluster servers to gain more speed has its price. Firstly, the cost of the hardware itself, secondly the increased power consumption from the numerous processors that have to be used.
The purpose of this study is to investigate how partial run-time reconfiguration in FPGAs can be used to accelerate databases. It aims to show how an FPGA based query processor can work in collaboration with a regular software database to accelerate certain queries.
This thesis proposes a novel way of using dynamic partial reconfiguration in FPGAs to process arbitrary queries in hardware. We investigate how SQL queries can be decomposed and turned into hardware modules that are 'stitched' together at run-time to form a stream processing datapath. Consequently, a set of customizable hardware modules that each can implement a range of SQL operators are presented. In addition, the thesis gives a method for floorplanning a high capacity FPGA for slot based partial reconfiguration.
In the end, by the help of a case study we can conclude that the main bottleneck is the interface to the host computer. Another interesting finding is that unlike conventional databases, the accelerator is not slowed down by a more complex query. On the contrary, filtering out results actually speeds it up.