ds2-lab / aca-dlis

Algorithmic complexity attacks for dynamic learned indexes (VLDB'24)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1. Introduction

This repository contains the source code of our space ACA on data nodes, space ACA on internal nodes and time ACAs.

2. Contents

  • Space ACA on data nodes

    • MCK implementation: This file contains main logic of the attack (MCK implementation)
    • Source code
      • White-box: setting=1
      • Gray-box: setting=2
        • python script to generate dataset to constrcut a "substitude" tree (described in paper).
    • Scripts to regenerate the result in Figure 2
  • Space ACA on internal nodes

  • Time ACA on ALEX

    • Source code
    • Scripts to regenerate the results in Figure 5 ( Note: Before mounting any time ACA attacks to modified ALEX (forcing catastrohpic expansion instead of catastrohpic split) or vanilla ALEX, we need to comment/uncomment line 1316 to 1321 in alex.h, as described in paper)
  • ALEX: ALEX's source code.

3. Dependencies for Attacks

  • Space ACA on data nodes: OR-Tools and KDE
  • Space ACA on internal nodes: No dependencies
  • Time ACA on ALEX: KDE

4. Datasets

Datasets (Longitudes, Longlat, Lognormal, YCSB) used in this paper could be found in ALEX repo.

About

Algorithmic complexity attacks for dynamic learned indexes (VLDB'24)


Languages

Language:C++ 76.1%Language:Jupyter Notebook 21.9%Language:Shell 1.5%Language:CMake 0.3%Language:Python 0.2%