Skip to content

dais-polymtl/ffx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FFX — Fast Factorized eXecution

A fast factorized query engine supporting semantic queries

What is FFX?RequirementsBuild & testRun an exampleDocumentationTeamCite


📖 What is FFX?

FFX is a C++ engine for join-heavy workloads: factorized intermediates plus vectorized execution. It runs standard analytical joins and filters, and can plug in an LLM step where the query asks for it.

📋 Requirements

Tool Version
CMake 3.5+
C++ compiler C++17 (GCC 7+ or Clang 15+)
Libraries libcurl, nlohmann-json, fmt (dev packages)
Python 3.7 or above Optional, for example scripts

🔧 Getting started (build & test)

Install libcurl, nlohmann-json, and fmt so CMake can find_package them.

Debian / Ubuntu

sudo apt update
sudo apt install -y build-essential cmake \
  libcurl4-openssl-dev nlohmann-json3-dev libfmt-dev

macOS (Homebrew)brew install cmake nlohmann-json fmt curl (set CMAKE_PREFIX_PATH to brew --prefix if CMake cannot find packages).

Clone and build:

git clone https://github.com/dais-polymtl/ffx.git
cd ffx
cmake -S . -B RELEASE -DCMAKE_BUILD_TYPE=RELEASE
cmake --build RELEASE -j

Tests (optional):

cd RELEASE && ctest

🚀 Run an example

See examples/analytical/ and examples/semantic/ for end-to-end demos of analytical and semantic queries. Each folder contains a setup_data.py script to prepare the data and a run_query.py script to execute the engine.

Or invoke the engine directly:

/path/to/your/build/query_eval_exec <serialized_root_dir> "<query>" "<ordering>"

✨ Team

Developed by the Data & AI Systems Laboratory (DAIS Lab) at Polytechnique Montréal.

📄 Cite this paper

@article{DBLP:journals/pacmmod/YasserDM26,
  author    = {Sunny Yasser and Anas Dorbani and Amine Mhedhbi},
  title     = {Factorized and Vectorized Execution: Optimizing Analytical and Semantic Queries over Relations},
  journal   = {Proc. {ACM} Manag. Data},
  volume    = {4},
  number    = {3},
  year      = {2026},
  url       = {https://doi.org/10.1145/3802055},
  doi       = {10.1145/3802055}
}

🔝 back to top

About

Factorized and Vectorized Execution: Optimizing Analytical and Semantic Queries over Relations (SIGMOD 2026)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors