Skip to content

Commit

Permalink
add end-to-end experiment doc (#48)
Browse files Browse the repository at this point in the history
* Update experiments.md

* Add end to end config
  • Loading branch information
BingTong0 authored Dec 10, 2024
1 parent b512ef3 commit d52a76f
Show file tree
Hide file tree
Showing 5 changed files with 285 additions and 0 deletions.
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 &
```

0 comments on commit d52a76f

Please sign in to comment.