Generally, three L3 classes for the GQE Bloom-Filter are provided to alleviate the software developers’ suffering for calling OpenCL APIs, arranging the column shuffles, and splitting the table into sections with executable size to accelerate database queries with the hardware kernels:
gqe::FilterConfig
: For generating software shuffles for the input and output columns plus the kernel configuration bits.gqe::BloomFilter
: For calculating the bloom-filter size based on the number of unique keys, allocating buffers for internal hash-table, and performing software build and merge processes as the support build process for bloom-filtering is not provided.gqe::Filter
: For performing the multi-threaded pipelined bloom-filtering.