The LDBC FinBench Driver is a powerful tool designed for benchmarking the performance of graph databases.
Note: The main branch is a work-in-progress for the upcoming v0.2 release aiming scales larger than SF100. For the stable version, please refer to version 0.1.0 on the v0.1.0 branch.
Related repositories:
- FinBench Specification: https://github.com/ldbc/ldbc_finbench_docs
- FinBench DataGen: https://github.com/ldbc/ldbc_finbench_datagen
- FinBench Driver: https://github.com/ldbc/ldbc_finbench_driver
- FinBench Transaction Reference Implementation: https://github.com/ldbc/ldbc_finbench_transaction_impls
The Driver initiates by reading the configuration file. The default configuration file path for DummyDB is src/main/resources/example/ldbc_finbench_driver_dummy.properties.
If required, the System Under Test (SUT) can customize the configuration parameters to connect to the database or read the query file. This can include the request host, port, path, etc.
host=localhost
port=9091
user=admin
pass=123456
path=cypher/For a new implementation of the SUT, update this configuration parameter accordingly.
db=org.ldbcouncil.finbench.impls.dummy.DummyDbPlease update based on your parameter path. The parameters_dir is the ComplexRead parameter path, and updates_dir is the Write and ReadWrite incremental data path.
ldbc.finbench.transaction.queries.parameters_dir=src/main/resources/example/data/read_params
ldbc.finbench.transaction.queries.updates_dir=src/main/resources/example/data/incremental_dataThe driver operates in three modes:
- CREATE_VALIDATION
- VALIDATE_DATABASE
- EXECUTE_BENCHMARK
With CREATE_VALIDATION mode, you create a database result. validation_parameters_size denotes the number of results created, while validate_database refers to the file where the created results are stored.
mode=CREATE_VALIDATION
validation_parameters_size=100
validate_database=validation_params.csvVALIDATE_DATABASE mode allows you to verify the SUT. The validate_database is the result created by CREATE_VALIDATION mode.
mode=VALIDATE_DATABASE
validate_database=validation_params.csvPerform the performance test with EXECUTE_BENCHMARK mode. Here are some crucial configuration parameters that need adjustment when operating the driver:
- thread_count: Represents the number of concurrent requests that the driver can handle, corresponding to the number of active threads running simultaneously within the driver.
- time_compression_ratio: Controls the intensity of the driver's workload. A lower value yields a higher workload in a shorter timeframe.
- ignore_scheduled_start_times: Determines whether the driver should follow the scheduled timings for sending requests. If set to true, the driver sends requests as soon as they are prepared, regardless of the schedule.
- warmup: Denotes the number of preliminary test items processed before the actual benchmarking begins.
- operation_count: Sets the number of test items executed during the actual benchmarking phase after the warm-up.
mode=EXECUTE_BENCHMARK
thread_count=1
time_compression_ratio=0.001
ignore_scheduled_start_times=false
warmup=5
operation_count=10000To get started, clone the repository and build it with Maven:
git clone https://github.com/ldbc/ldbc_finbench_driver.git
cd ldbc_finbench_driver
mvn clean package -DskipTestsFor a quick trial of the driver, utilize the DummyDB shipped with it by running the following command:
java -cp target/driver-0.2.0-alpha.jar org.ldbcouncil.finbench.driver.driver.Driver -P src/main/resources/example/ldbc_finbench_driver_dummy.properties