Alenka

GPU 数据库引擎。「GPU database engine」

Github stars Tracking Chart

Welcome to Alenka - GPU database engine

What is this?

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

Requirements

  • CUDA (nvcc) + Nvidia GPU
  • bison
  • flex
  • Modern GPU Library (included as submodule)

How to build?

git clone --recursive https://github.com/antonmks/Alenka.git
cd Alenka
make

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.

  • Fast Loading
    Gpu based CSV parser loads the data into database at very high speed.

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.

Run your queries from a command prompt or use Alenka JDBC driver from Technica Corporation

Step 1 - Filter data

OFI := FILTER orders BY o_orderdate < 19950315;

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

LF := FILTER lineitem BY shipdate > 19950315;

Step 2 - 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 3 - 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 4 - Order data

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

Step 5 - Save the results

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

####Alenka is licensed under Apache 2.0 license.

Main metrics

Overview
Name With Ownerantonmks/Alenka
Primary LanguageCuda
Program languageMakefile (Language Count: 6)
Platform
License:Other
所有者活动
Created At2012-04-04 11:01:00
Pushed At2017-01-30 18:30:28
Last Commit At2017-01-30 21:30:16
Release Count0
用户参与
Stargazers Count1.2k
Watchers Count94
Fork Count120
Commits Count493
Has Issues Enabled
Issues Count85
Issue Open Count12
Pull Requests Count18
Pull Requests Open Count0
Pull Requests Close Count11
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private