Home

Awesome

Alex Extension for DuckDB 🦆

This repository is based on https://github.com/duckdb/extension-template, check it out if you want to build and ship your own DuckDB extension 🚀

The alex extension allows the user to create alex index structure for any integer-based data column of the table.

Build steps

Remember to clone all the sub-modules using

git clone --recurse-submodules https://github.com/bhargav191098/intelligent-duck.git

Now to build the extension, run:

make

The main binaries that will be built are:

./build/release/duckdb
./build/release/test/unittest
./build/release/extension/alex/alex.duckdb_extension

Running the extension

To run the extension code, simply start the shell with ./build/release/duckdb.

Please download the respective benchmarking datasets and place it in the same directory as alex_extension.cpp to use the benchmark command : otherwise the benchmarking functionality will not work.

Benchmark datasets

Evaluation graphs

<img src = "https://github.com/bhargav191098/intelligent-duck/blob/main/graph-images/benchmarks.png" height="800" width="600" />

The Learned Indexing provides great throughput with less memory overhead. Obviously running it on x86 based CPUs allows even further boosts.