Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add end-to-end experiment doc #48

Merged
merged 2 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions misc/end_to_end_evaluation/sf100_finbench_benchmark.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
############################################################
# SUT defined configurations #
############################################################
endpoint=bolt://127.0.0.1:7687
user=admin
password=admin
graphName=sf100
queryDir=queries
############################################################
# Driver configurations #
############################################################
status=1
thread_count=32
name=LDBC-FinBench
# Modes available: 1.CREATE_VALIDATION 2.VALIDATE_DATABASE 3.EXECUTE_BENCHMARK
mode=EXECUTE_BENCHMARK
results_log=true
time_unit=MICROSECONDS
time_compression_ratio=0.1
peer_identifiers=
workload_statistics=false
spinner_wait_duration=1
help=false
ignore_scheduled_start_times=false
workload=org.ldbcouncil.finbench.driver.workloads.transaction.LdbcFinBenchTransactionWorkload
db=org.ldbcouncil.finbench.impls.galaxybase.GalaxybaseDb
operation_count=2400000
validation_parameters_size=10000
validate_workload=true
validate_database=validation_params.csv
warmup=600000
#ldbc.finbench.transaction.queries.parameters_dir=data/read_params
#ldbc.finbench.transaction.queries.updates_dir=data/incremental
ldbc.finbench.transaction.queries.parameters_dir=sf100/substitute_parameters
ldbc.finbench.transaction.queries.updates_dir=sf100/incremental
# param and update files suffix, `csv` or `parquet`, default is `csv`
ldbc.finbench.transaction.queries.files_suffix=csv
ldbc.finbench.transaction.queries.simple_read_dissipation=0.2
ldbc.finbench.transaction.queries.update_interleave=500
ldbc.finbench.transaction.queries.scale_factor=1
# Frequency of complex read queries
ldbc.finbench.transaction.queries.ComplexRead1_freq=12
ldbc.finbench.transaction.queries.ComplexRead2_freq=45
ldbc.finbench.transaction.queries.ComplexRead3_freq=23
ldbc.finbench.transaction.queries.ComplexRead4_freq=57
ldbc.finbench.transaction.queries.ComplexRead5_freq=83
ldbc.finbench.transaction.queries.ComplexRead6_freq=21
ldbc.finbench.transaction.queries.ComplexRead7_freq=36
ldbc.finbench.transaction.queries.ComplexRead8_freq=51
ldbc.finbench.transaction.queries.ComplexRead9_freq=21
ldbc.finbench.transaction.queries.ComplexRead10_freq=6
ldbc.finbench.transaction.queries.ComplexRead11_freq=12
ldbc.finbench.transaction.queries.ComplexRead12_freq=34
# For debugging purposes
ldbc.finbench.transaction.queries.ComplexRead1_enable=true
ldbc.finbench.transaction.queries.ComplexRead2_enable=true
ldbc.finbench.transaction.queries.ComplexRead3_enable=true
ldbc.finbench.transaction.queries.ComplexRead4_enable=true
ldbc.finbench.transaction.queries.ComplexRead5_enable=true
ldbc.finbench.transaction.queries.ComplexRead6_enable=true
ldbc.finbench.transaction.queries.ComplexRead7_enable=true
ldbc.finbench.transaction.queries.ComplexRead8_enable=true
ldbc.finbench.transaction.queries.ComplexRead9_enable=true
ldbc.finbench.transaction.queries.ComplexRead10_enable=true
ldbc.finbench.transaction.queries.ComplexRead11_enable=true
ldbc.finbench.transaction.queries.ComplexRead12_enable=true
ldbc.finbench.transaction.queries.SimpleRead1_enable=true
ldbc.finbench.transaction.queries.SimpleRead2_enable=true
ldbc.finbench.transaction.queries.SimpleRead3_enable=true
ldbc.finbench.transaction.queries.SimpleRead4_enable=true
ldbc.finbench.transaction.queries.SimpleRead5_enable=true
ldbc.finbench.transaction.queries.SimpleRead6_enable=true
ldbc.finbench.transaction.queries.Write1_enable=true
ldbc.finbench.transaction.queries.Write2_enable=true
ldbc.finbench.transaction.queries.Write3_enable=true
ldbc.finbench.transaction.queries.Write4_enable=true
ldbc.finbench.transaction.queries.Write5_enable=true
ldbc.finbench.transaction.queries.Write6_enable=true
ldbc.finbench.transaction.queries.Write7_enable=true
ldbc.finbench.transaction.queries.Write8_enable=true
ldbc.finbench.transaction.queries.Write9_enable=true
ldbc.finbench.transaction.queries.Write10_enable=true
ldbc.finbench.transaction.queries.Write11_enable=true
ldbc.finbench.transaction.queries.Write12_enable=true
ldbc.finbench.transaction.queries.Write13_enable=true
ldbc.finbench.transaction.queries.Write14_enable=true
ldbc.finbench.transaction.queries.Write15_enable=true
ldbc.finbench.transaction.queries.Write16_enable=true
ldbc.finbench.transaction.queries.Write17_enable=true
ldbc.finbench.transaction.queries.Write18_enable=true
ldbc.finbench.transaction.queries.Write19_enable=true
ldbc.finbench.transaction.queries.ReadWrite1_enable=true
ldbc.finbench.transaction.queries.ReadWrite2_enable=true
ldbc.finbench.transaction.queries.ReadWrite3_enable=true
1 change: 1 addition & 0 deletions misc/end_to_end_evaluation/sf100_finbench_benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
java --class-path target/galaxybase-cypher-0.2.0-alpha.jar:lib/graphdbapi-bolt-driver-3.5.0.jar org.ldbcouncil.finbench.driver.driver.Driver -P sf100_finbench_benchmark.properties
94 changes: 94 additions & 0 deletions misc/end_to_end_evaluation/sf10_finbench_benchmark.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
############################################################
# SUT defined configurations #
############################################################
endpoint=bolt://127.0.0.1:7687
user=admin
password=admin
graphName=sf10
queryDir=queries
############################################################
# Driver configurations #
############################################################
status=1
thread_count=32
name=LDBC-FinBench
# Modes available: 1.CREATE_VALIDATION 2.VALIDATE_DATABASE 3.EXECUTE_BENCHMARK
mode=EXECUTE_BENCHMARK
results_log=true
time_unit=MICROSECONDS
time_compression_ratio=0.1
peer_identifiers=
workload_statistics=false
spinner_wait_duration=1
help=false
ignore_scheduled_start_times=false
workload=org.ldbcouncil.finbench.driver.workloads.transaction.LdbcFinBenchTransactionWorkload
db=org.ldbcouncil.finbench.impls.galaxybase.GalaxybaseDb
operation_count=2000000
validation_parameters_size=10000
validate_workload=true
validate_database=validation_params.csv
warmup=500000
#ldbc.finbench.transaction.queries.parameters_dir=data/read_params
#ldbc.finbench.transaction.queries.updates_dir=data/incremental
ldbc.finbench.transaction.queries.parameters_dir=/sf10/substitute_parameters
ldbc.finbench.transaction.queries.updates_dir=sf10/incremental
# param and update files suffix, `csv` or `parquet`, default is `csv`
ldbc.finbench.transaction.queries.files_suffix=csv
ldbc.finbench.transaction.queries.simple_read_dissipation=0.2
ldbc.finbench.transaction.queries.update_interleave=500
ldbc.finbench.transaction.queries.scale_factor=1
# Frequency of complex read queries
ldbc.finbench.transaction.queries.ComplexRead1_freq=12
ldbc.finbench.transaction.queries.ComplexRead2_freq=45
ldbc.finbench.transaction.queries.ComplexRead3_freq=23
ldbc.finbench.transaction.queries.ComplexRead4_freq=57
ldbc.finbench.transaction.queries.ComplexRead5_freq=83
ldbc.finbench.transaction.queries.ComplexRead6_freq=21
ldbc.finbench.transaction.queries.ComplexRead7_freq=36
ldbc.finbench.transaction.queries.ComplexRead8_freq=51
ldbc.finbench.transaction.queries.ComplexRead9_freq=21
ldbc.finbench.transaction.queries.ComplexRead10_freq=6
ldbc.finbench.transaction.queries.ComplexRead11_freq=12
ldbc.finbench.transaction.queries.ComplexRead12_freq=34
# For debugging purposes
ldbc.finbench.transaction.queries.ComplexRead1_enable=true
ldbc.finbench.transaction.queries.ComplexRead2_enable=true
ldbc.finbench.transaction.queries.ComplexRead3_enable=true
ldbc.finbench.transaction.queries.ComplexRead4_enable=true
ldbc.finbench.transaction.queries.ComplexRead5_enable=true
ldbc.finbench.transaction.queries.ComplexRead6_enable=true
ldbc.finbench.transaction.queries.ComplexRead7_enable=true
ldbc.finbench.transaction.queries.ComplexRead8_enable=true
ldbc.finbench.transaction.queries.ComplexRead9_enable=true
ldbc.finbench.transaction.queries.ComplexRead10_enable=true
ldbc.finbench.transaction.queries.ComplexRead11_enable=true
ldbc.finbench.transaction.queries.ComplexRead12_enable=true
ldbc.finbench.transaction.queries.SimpleRead1_enable=true
ldbc.finbench.transaction.queries.SimpleRead2_enable=true
ldbc.finbench.transaction.queries.SimpleRead3_enable=true
ldbc.finbench.transaction.queries.SimpleRead4_enable=true
ldbc.finbench.transaction.queries.SimpleRead5_enable=true
ldbc.finbench.transaction.queries.SimpleRead6_enable=true
ldbc.finbench.transaction.queries.Write1_enable=true
ldbc.finbench.transaction.queries.Write2_enable=true
ldbc.finbench.transaction.queries.Write3_enable=true
ldbc.finbench.transaction.queries.Write4_enable=true
ldbc.finbench.transaction.queries.Write5_enable=true
ldbc.finbench.transaction.queries.Write6_enable=true
ldbc.finbench.transaction.queries.Write7_enable=true
ldbc.finbench.transaction.queries.Write8_enable=true
ldbc.finbench.transaction.queries.Write9_enable=true
ldbc.finbench.transaction.queries.Write10_enable=true
ldbc.finbench.transaction.queries.Write11_enable=true
ldbc.finbench.transaction.queries.Write12_enable=true
ldbc.finbench.transaction.queries.Write13_enable=true
ldbc.finbench.transaction.queries.Write14_enable=true
ldbc.finbench.transaction.queries.Write15_enable=true
ldbc.finbench.transaction.queries.Write16_enable=true
ldbc.finbench.transaction.queries.Write17_enable=true
ldbc.finbench.transaction.queries.Write18_enable=true
ldbc.finbench.transaction.queries.Write19_enable=true
ldbc.finbench.transaction.queries.ReadWrite1_enable=true
ldbc.finbench.transaction.queries.ReadWrite2_enable=true
ldbc.finbench.transaction.queries.ReadWrite3_enable=true
1 change: 1 addition & 0 deletions misc/end_to_end_evaluation/sf10_finbench_benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
java --class-path target/galaxybase-cypher-0.2.0-alpha.jar:lib/graphdbapi-bolt-driver-3.5.0.jar org.ldbcouncil.finbench.driver.driver.Driver -P sf10_finbench_benchmark.properties
95 changes: 95 additions & 0 deletions misc/experiments.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,3 +349,98 @@ Then run the benchmark.
```
bash sf100_benchmark.sh
```

# End to End Evaluation

- [Galaxybase Official Website](https://createlink.com)

## 1. Resources

- Download the `galaxybase.zip` file from [here](https://drive.google.com/file/d/1euXCtu-oEzeh6M3Z4mP6LxofbhaYHHxs/view?usp=sharing), unzip it, and you will find `galaxybase.tar.gz` and the JSON files.
- Prepare the data files for both `sf10` and `sf100` datasets.

## 2. Installation & Data Loading

- **Package Extraction**

Extract the Galaxybase package:

```bash
tar -zxf galaxybase.tar.gz
```

- **Environment Setup and Image Installation**

Install the Galaxybase environment and necessary Docker images:

```bash
./galaxybase-*/bin/galaxybase-deploy install docker
./galaxybase-*/bin/galaxybase-deploy image install
```

- **Service Container Deployment**

Deploy the `graph` service containers.

```shell
./galaxybase-*/bin/galaxybase-deploy build graph --home home
```

- **Validation & Start-Up**

To validate the service, retrieve the verification code using the following command (replace `CONTAINER_ID` with the actual container ID):

```
docker exec -i CONTAINER_ID gtools graph auth-check
```

Then, input the authorization code:

```
docker exec -i CONTAINER_ID gtools graph auth --code 'AUTH_CODE'
```

*Note: You can acquire the authorization code by contacting the support team at [email protected].*

- **Data Transfer**

Move the benchmark data to the `home/graph/data` directory. Example for the `sf10` dataset:

```shell
mv sf10/snapshot home/graph/data/sf10
```

- **Data Loading**

Load the `sf10` dataset into Galaxybase using the provided schema and mapping files:

```shell
./galaxybase-*/bin/galaxybase-load -s json/schema_sf10.json -m json/mapping_sf10.json -g sf10
```

## 3. Benchmark Execution

- **Compilation**

First, clone the repository and compile the benchmark implementation.

```shell
git clone https://github.com/ldbc/ldbc_finbench_transaction_impls
mv sf10_finbench_benchmark.* ldbc_finbench_transaction_impls/
mv sf100_finbench_benchmark.* ldbc_finbench_transaction_impls/
cd ldbc_finbench_transaction_impls
mvn install -DskipTests
cd galaxybase-cypher
```

- **Benchmark Run**

Execute the benchmark for both `sf10` and `sf100` datasets.

```shell
# Run benchmark for sf10
nohup sh sf10_finbench_benchmark.sh > console.log &

# Run benchmark for sf100
nohup sh sf100_finbench_benchmark.sh > console.log &
```
Loading