Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


GPU database engine

Subscribe to updates I use Alenka

Statistics on Alenka

Number of watchers on Github 1103
Number of open issues 11
Average time to close an issue about 1 month
Main language Cuda
Average time to merge a PR about 18 hours
Open pull requests 1+
Closed pull requests 10+
Last commit about 3 years ago
Repo Created almost 8 years ago
Repo Last Updated almost 2 years ago
Size 44.1 MB
Organization / Authorantonmks
Page Updated
Do you use Alenka? Leave a review!
View open issues (11)
View Alenka activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating Alenka for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

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


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

How to build?

git clone --recursive
cd Alenka

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.

Alenka open issues Ask a question     (View All Issues)
  • over 3 years Compilation on Windows
  • over 3 years OpenCL port
  • over 3 years Data partitioning architecture
  • over 3 years Loading error
  • over 3 years Device Errors
  • almost 4 years Compile problem
  • almost 7 years Is there in AlenkaDB such a thing as NULL?
Alenka open pull requests (View All Pulls)
  • file organization
Alenka questions on Stackoverflow (View All Questions)
  • 'thrust::system::system_error' error when running GPGPU database engine Alenka
Alenka list of languages used
More projects by antonmks View all
Other projects in Cuda