diff --git a/misc/end_to_end_evaluation/sf100_finbench_benchmark.properties b/misc/end_to_end_evaluation/sf100_finbench_benchmark.properties new file mode 100644 index 0000000..f8c51b4 --- /dev/null +++ b/misc/end_to_end_evaluation/sf100_finbench_benchmark.properties @@ -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 diff --git a/misc/end_to_end_evaluation/sf100_finbench_benchmark.sh b/misc/end_to_end_evaluation/sf100_finbench_benchmark.sh new file mode 100644 index 0000000..e0e1bf2 --- /dev/null +++ b/misc/end_to_end_evaluation/sf100_finbench_benchmark.sh @@ -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 diff --git a/misc/end_to_end_evaluation/sf10_finbench_benchmark.properties b/misc/end_to_end_evaluation/sf10_finbench_benchmark.properties new file mode 100644 index 0000000..18894c2 --- /dev/null +++ b/misc/end_to_end_evaluation/sf10_finbench_benchmark.properties @@ -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 diff --git a/misc/end_to_end_evaluation/sf10_finbench_benchmark.sh b/misc/end_to_end_evaluation/sf10_finbench_benchmark.sh new file mode 100644 index 0000000..3040c73 --- /dev/null +++ b/misc/end_to_end_evaluation/sf10_finbench_benchmark.sh @@ -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 diff --git a/misc/experiments.md b/misc/experiments.md index fb4c43a..e0bcb59 100644 --- a/misc/experiments.md +++ b/misc/experiments.md @@ -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 support@createlink.com.* + +- **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 & +```