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 recursive path filtering experiment doc #46

Merged
merged 1 commit 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
102 changes: 101 additions & 1 deletion misc/experiments.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,105 @@ Docker image: tugraph/tugraph-compile-centos8:1.3.1
- Baseline:
- Optimized:
- Datasets:
- SF100:https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/datasets/finbench/v0.2.0/sf100/sf100.tar.xz
- Parameter of SF100:https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/datasets/finbench/v0.2.0/sf100/substitute_parameters.tar.gz.

## Experiment Steps
## Experiment Steps

### Move to directory
Download dataset and parameter and move them to the dataset directory, for example, the directory '/data/dataset'.

Modify docker-compose.yml to attach local file to volume '/root/datasets/' in container, for example,
```
volumes:
- /data/dataset:/root/datasets/
- ./scripts:/root/scripts/
```

Start docker containers.
```
docker-compose up -d
```

After that, will see two containers.
- [directory name]_tugraph_1
- [directory name]_finbench_1

Benchmark is based on a large-scale SF100 dataset, and the following scripts are required.

### Install package
First, attach to the 'finbench-easyrun_tugraph_1' container.

Then install the package.
```
rpm -i base.rpm
```

### Import data
Enter the '/root/scripts' directory.
```
bash sf100_import.sh
```

### Start tugraph server
Also in the same container 'finbench-easyrun_tugraph_1' and same directory'/root/scripts', start the server.
```
bash sf100_start.sh
```

### C++ Plugin
Switch to another container 'finbench'.

Enter the '/root/scripts' directory.
```
bash load_procedure.sh
```
To install C++ plugins.

### Benchmark Baseline
Before benchmark, in the container 'finbench', copy the file 'benchmark_sf100.properties' in scripts to the directory '/root/ldbc/ldbc_finbench_transaction_impls/tugraph/benchmark.properties'.

Also in the 'finbench' container and enter the '/root/scripts' directory.
```
bash sf100_benchmark.sh
```

### Benchmark Opt
Attach to container 'tugraph'.

Uninstall the baseline package.
```
rpm -e tugraph-4.0.0-1.x86_64
```
Install the opt version.
```
rpm -i opt.rpm
```

Switch to '/root/scripts'.

Delete the old data directory.

```
rm -r /root/lgraph_db_sf100
rm -r /root/lgraph_log_sf100

bash sf100_import.sh
bash sf100_start.sh
```

Attach to 'finbench' container, and enter '/root/scripts'.
```
bash load_procedure.sh
```

Before benchmark, comment the line
```
# cd data && ln -s /root/datasets/sf100 ./sf100 && cd ..
```
in the file 'sf100_benchmark.properties'

Then run the benchmark.
```
bash sf100_benchmark.sh
```
22 changes: 22 additions & 0 deletions misc/opt_recursive/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
version: "3"
services:
tugraph:
image: tugraph/tugraph-compile-centos8:1.2.9
command: tail -f
tty: true
volumes:
- /data/dataset:/root/datasets/
- ./scripts:/root/scripts/
expose:
- 7070
- 9090

finbench:
depends_on:
- tugraph
image: tugraph/tugraph-bdci-finbench:cent8
command: tail -f
tty: true
volumes:
- /data/dataset:/root/datasets/
- ./scripts:/root/scripts/
91 changes: 91 additions & 0 deletions misc/opt_recursive/scripts/benchmark_sf100.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
############################################################
# SUT defined configurations #
############################################################
uri=list://172.21.189.228:9090
user=admin
pass=73@TuGraph

############################################################
# Driver configurations #
############################################################
status=1
thread_count=16
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.tugraph.TuGraphTransactionDb
operation_count=1800000
validation_parameters_size=100
validate_workload=true
validate_database=validation_params.csv
warmup=450000
ldbc.finbench.transaction.queries.parameters_dir=data/sf100/read_params
ldbc.finbench.transaction.queries.updates_dir=data/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
Loading
Loading