The LDBC FinBench Driver is a powerful tool designed for benchmarking the performance of graph databases. This is the alpha version of the FinBench driver, currently undergoing alpha testing.
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.DummyDb
Please 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_data
The 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.csv
VALIDATE_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.csv
Perform 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=10000
To 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 -DskipTests
For 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
- 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
Please visit these links for further documentation and related resources.