Skip to content

LDBC SNB Interactive v1 Benchmark #175

LDBC SNB Interactive v1 Benchmark

LDBC SNB Interactive v1 Benchmark #175

name: LDBC SNB Interactive v1 Benchmark
on:
schedule:
- cron: "0 5 * * *"
workflow_dispatch:
inputs:
scale_factor:
description: 'Scale factor'
required: true
default: "1"
type: choice
options:
- "1"
- "10"
- "30"
- "100"
jobs:
benchmark:
name: interactive-v1-benchmark
runs-on: kuzu-self-hosted-benchmarking-xl
env:
SCALE_FACTOR: ${{ github.event.inputs.scale_factor }}
NUM_THREADS: 128
steps:
- name: Set env for scheduled run
if: ${{ github.event_name == 'schedule' }}
run: |
echo "SCALE_FACTOR=1" >> $GITHUB_ENV
- name: Set env for workflow dispatch
if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo "SCALE_FACTOR=${{ github.event.inputs.scale_factor }}" >> $GITHUB_ENV
- name: Set checkout dir
run: |
echo "KUZU_DIR=$(pwd)" >> $GITHUB_ENV
- name: Set CSV dir
run: |
echo "KUZU_CSV_DIR=$CSV_DIR/interactive-v1-dataset/social_network-sf${SCALE_FACTOR}-CsvComposite-LongDateFormatter/" >> $GITHUB_ENV
- uses: actions/checkout@v4
- name: Build kuzu
run: |
pip3 install -r tools/python_api/requirements_dev.txt
make python
make java
- name: Clone driver
uses: actions/checkout@v4
with:
repository: ldbc/ldbc_snb_interactive_v1_driver
path: ldbc_snb_interactive_v1_driver
- name: Build driver
working-directory: ldbc_snb_interactive_v1_driver
run: mvn clean install -DskipTests
- name: Clone implementation
uses: actions/checkout@v4
with:
repository: kuzudb/ldbc_snb_interactive_v1_impl
token: ${{ secrets.DOC_PUSH_TOKEN }}
path: ldbc_snb_interactive_v1_impl
- name: Update implementation
working-directory: ldbc_snb_interactive_v1_impl
run: |
mkdir -p kuzu/src/main/resources
ln -s $KUZU_DIR/tools/java_api/build/kuzu_java.jar kuzu/src/main/resources/kuzu_java.jar
mvn clean package -DskipTests
- name: Load database
working-directory: ldbc_snb_interactive_v1_impl/kuzu
run: |
workflow_scripts/load-in-one-step.sh
- name: Run benchmark
working-directory: ldbc_snb_interactive_v1_impl/kuzu
run: |
echo "ldbc.snb.interactive.updates_dir=${KUZU_CSV_DIR}" >> driver/benchmark.properties
echo "ldbc.snb.interactive.parameters_dir=$CSV_DIR/interactive-v1-dataset/substitution_parameters-sf${SCALE_FACTOR}/" >> driver/benchmark.properties
driver/benchmark.sh | tee LDBC-SNB.log
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: LDBC-SNB-interactive-v1-results
path: ldbc_snb_interactive_v1_impl/kuzu/results/LDBC-SNB-results.json
- name: Upload log
uses: actions/upload-artifact@v4
with:
name: LDBC-SNB-interactive-v1-log
path: ldbc_snb_interactive_v1_impl/kuzu/LDBC-SNB.log
- name: Report result to server
working-directory: ldbc_snb_interactive_v1_impl/kuzu
run: |
python3 scripts/report_results.py