Skip to content
This repository

GPU database engine

branch: master
Octocat-spinner-32 Makefile fixed Makefile April 14, 2014
Octocat-spinner-32 Makefile.win Removed CUDPP dependencies. March 29, 2014
Octocat-spinner-32 MurmurHash2_64.cu Added Makefiles for Windows and Linux March 08, 2013
Octocat-spinner-32 alenka.h Added row.c and main.cu February 20, 2014
Octocat-spinner-32 atof.cu Added Makefiles for Windows and Linux March 08, 2013
Octocat-spinner-32 atof.h Added Makefiles for Windows and Linux March 08, 2013
Octocat-spinner-32 bison.cu Fixed issue Alenka#58 April 16, 2014
Octocat-spinner-32 bison.tab.c Fixed a parsing error April 06, 2014
Octocat-spinner-32 bison.tab.h Added SHOW TABLES, DESCRIBE and DROP TABLE commands April 01, 2014
Octocat-spinner-32 bison.y Fixed issue Alenka#58 April 16, 2014
Octocat-spinner-32 change.log Added a data dictionary. February 26, 2014
Octocat-spinner-32 cm.cu Fixed issue Alenka#58 April 16, 2014
Octocat-spinner-32 cm.h Data cached in buffers when running in interactive mode April 16, 2014
Octocat-spinner-32 compress.cu Bug fixes. January 20, 2014
Octocat-spinner-32 filter.cu code structure changes March 09, 2014
Octocat-spinner-32 filter.h Improved join performance (2X) - read change.log February 07, 2014
Octocat-spinner-32 fl.l Added SHOW TABLES, DESCRIBE and DROP TABLE commands April 01, 2014
Octocat-spinner-32 green.md green.md change September 29, 2013
Octocat-spinner-32 how_to_run_tpch.txt Added how_to_run_tpch file March 27, 2013
Octocat-spinner-32 lex.yy.c Added SHOW TABLES, DESCRIBE and DROP TABLE commands April 01, 2014
Octocat-spinner-32 load_customer.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 load_lineitem.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 load_nation.sql Changes to run Q2 and Q6 March 15, 2013
Octocat-spinner-32 load_orders.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 load_part.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 load_partsupp.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 load_region.sql Changes to run Q2 and Q6 March 15, 2013
Octocat-spinner-32 load_supplier.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 main.cu Added row.c and main.cu February 20, 2014
Octocat-spinner-32 manual.txt Removed CUDPP dependencies. March 29, 2014
Octocat-spinner-32 merge.cu code structure changes March 09, 2014
Octocat-spinner-32 merge.h Better groupby performance with merge/reduce_by_key June 08, 2013
Octocat-spinner-32 q1.sql Updated q1.sql March 06, 2014
Octocat-spinner-32 q3.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 q5.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 q6.sql Added a data dictionary. February 26, 2014
Octocat-spinner-32 q7.sql A few bug fixes March 28, 2014
Octocat-spinner-32 readme.md small updates April 01, 2014
Octocat-spinner-32 row.c Added row.c and main.cu February 20, 2014
Octocat-spinner-32 row.h Added row.c and main.cu February 20, 2014
Octocat-spinner-32 select.cu Fixed issue Alenka#58 April 16, 2014
Octocat-spinner-32 select.h Some code improvements March 28, 2013
Octocat-spinner-32 sorts.cu Filter modification, code cleanup September 05, 2013
Octocat-spinner-32 star_queries.zip updated star_queries.zip April 02, 2014
Octocat-spinner-32 stdint.h 4-4-2012-commit April 04, 2012
Octocat-spinner-32 strings.h Filter modification, code cleanup September 05, 2013
Octocat-spinner-32 strings_filter.cu Filter modification, code cleanup September 05, 2013
Octocat-spinner-32 strings_join.cu Filter modification, code cleanup September 05, 2013
Octocat-spinner-32 strings_sort_device.cu A few compatibility/bug fixes July 18, 2013
Octocat-spinner-32 strings_sort_host.cu Created 4 of the translation unit and unrolled functors are scattered… May 19, 2013
Octocat-spinner-32 strings_type.h gcc fix November 13, 2013
Octocat-spinner-32 zone_map.cu Fixed issue Alenka#58 April 16, 2014
Octocat-spinner-32 zone_map.h Added Makefiles for Windows and Linux March 08, 2013
readme.md

Welcome to Alenka - GPU database engine

How to build?

Download Alenka

Download ModernGpu library

Unzip ModernGPU into Alenka directory

Run Makefile or Makefile.win

What is this?

This is a GPU based database engine written to use vector based processing and high bandwidth of modern GPUs

Features :

  • Vector-based processing
    CUDA programming model allows a single operation to be applied to an entire set of data at once.

  • Smart compression
    Ultra fast compression and decompression on GPU. Database operations on compressed data.

  • Column-based storage
    Minimizes disk I/O by only accessing the relevant data.

  • Data skipping
    Better performance without indexes.

How to use it ?

Create your data files :

Run scripts load_orders.sql, load_lineitem.sql and load_customer.sql to create your database files.

Step 1 - Load the data files

O := LOAD 'orders' BINARY AS (o_orderkey{1}:int, o_custkey{2}:int, o_orderdate{5}:int, o_shippriority{8}:int);

C := LOAD 'customer' BINARY AS (c_custkey{1}:int, c_mktsegment{7}:varchar(10));

L := LOAD 'lineitem' BINARY AS (orderkey{1}:int, price{6}:decimal, discount{7}:decimal, shipdate{11}:int);

Step 2 - Filter data

OFI := FILTER orders BY o_orderdate < 19950315;

CF := FILTER customers BY c_mktsegment == "BUILDING";

LF := FILTER lineitem BY shipdate > 19950315;

Step 3 - Join data

OLC := SELECT o_orderkey AS o_orderkey, o_orderdate AS o_orderdate, o_shippriority AS o_shippriority, price AS price, discount AS discount FROM LF JOIN OFI ON orderkey = o_orderkey JOIN CF ON o_custkey = c_custkey;

Step 4 - Group data

F := SELECT o_orderkey AS o_orderkey1, o_orderdate AS orderdate1, o_shippriority AS priority, SUM(price*(1-discount)) AS sum_revenue, COUNT(o_orderkey) AS cnt
FROM OLC GROUP BY o_orderkey, o_orderdate, o_shippriority;

Step 5 - Order data

RES := ORDER F BY sum_revenue DESC, orderdate1 ASC;

Step 6 - Save the results

STORE RES INTO 'results.txt' USING ('|') LIMIT 10;

githalytics.com alpha

Something went wrong with that request. Please try again.