ScalarDB ベンチマークツール
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このチュートリアルでは、ScalarDB のベンチマークツールを実行する方法について説明します。データベースベンチマークは、一連の標準データセットワークロードに対するデータベースのパフォーマンスを評価するのに役立ちます。
ベンチマークのワークロード
- TPC-C
- YCSB (ワークロード A、C、および F)
- マルチストレージ YCSB (ワークロード C および F)
- この YCSB バリアントは、ScalarDB を使用するマルチストレージ環境用です。
- マルチストレージ YCSB のワーカーは、2つの名前空間 (
ycsb_primary
とycsb_secondary
) で同じ数の読み取り操作と書き込み操作を実行します。
前提条件
- 次の Java Development Kit (JDK) のいずれか:
- Oracle JDK LTS バージョン 8
- OpenJDK LTS バージョン 8
- Gradle
- Kelpie
- Kelpie は、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのフレームワークです。 Kelpie Releases から最新バージョンを入手し、アーカイブファイルを解凍します。
- ベンチマークツールを実行するクライアント
- ターゲットデータベース
- ScalarDB がサポートするデータベースの一覧については、Databases を参照してください。
現在、ベンチマークツールを実行するときに使用できるのは JDK 8のみ です。
ベンチマークツールをセットアップする
次のセクションでは、ベンチマークツールのセットアップ方法について説明します。
ScalarDB ベンチマークリポジトリをクローンする
ターミナルを開き、次のコマンドを実行して ScalarDB ベンチマークリポジトリのクローンを作成します。
git clone https://github.com/scalar-labs/scalardb-benchmarks
次に、下記のコマンドを実行して、ベンチマークファイルが含まれるディレクトリに移動します。
cd scalardb-benchmarks
ツールをビルドする
ベンチマークツールをビルドするには、次のコマンドを実行します。
./gradlew shadowJar
スキーマをロードする
初期データをロードする前に、ScalarDB Schema Loader を使用してテーブルを定義する必要があります。ScalarDB Schema Loader は、ScalarDB Releases ページからダウンロードできます。ScalarDB へのアクセス方法に基づいて Schema Loader を選択してください。
- ScalarDB コアライブラリ (コミュニティエディション) を使用する場合: 使用している ScalarDB のバージョンに応じて
scalardb-schema-loader-<VERSION>.jar
を選択します。次に、.jar
ファイルをscalardb-benchmarks
ルートディレクトリに保存します。 - ScalarDB Cluster (エンタープライズエディション) を使用する場合: 使用している ScalarDB Cluster のバージョンに応じて
scalardb-cluster-schema-loader-<VERSION>-all.jar
を選択します。次に、.jar
ファイルをscalardb-benchmarks
ルート ディレクトリに保存します。
さらに、Java CRUD インターフェースを介して ScalarDB にアクセスするためのプロパティファイルも必要です。ScalarDB プロパティファイルの設定の詳細については、ScalarDB 設定または ScalarDB Cluster クライアント構成を参照してください。
スキーマを適用してプロパティファイルを設定したら、ベンチマークを選択し、指示に従ってテーブルを作成します。
- TPC-C
- YCSB
- マルチストレージ YCSB
TPC-C ベンチマーク用のテーブル (tpcc-schema.json
) を作成するには、山括弧内の内容を説明に従って置き換えて、次のコマンドを実行します。
java -jar scalardb-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f tpcc-schema.json --coordinator
ScalarDB Cluster を使用している場合は、代わりに次のコマンドを実行します。
java -jar scalardb-cluster-schema-loader-<VERSION>-all.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f tpcc-schema.json --coordinator
YCSB ベンチマーク用のテーブル (ycsb-schema.json
) を作成するには、山括弧内の内容を説明に従って置き換えて、次のコマンドを実行します。
java -jar scalardb-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f ycsb-schema.json --coordinator
ScalarDB Cluster を使用している場合は、代わりに次のコマンドを実行します。
java -jar scalardb-cluster-schema-loader-<VERSION>-all.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f ycsb-schema.json --coordinator
マルチストレージ YCSB ベンチマーク用のテーブル (ycsb-multi-storage-schema.json
) を作成するには、山括弧内の内容を説明に従って置き換えて、次のコマンドを実行します。
java -jar scalardb-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f ycsb-multi-storage-schema.json --coordinator
ScalarDB Cluster を使用している場合は、代わりに次のコマンドを実行します。
java -jar scalardb-cluster-schema-loader-<VERSION>-all.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f ycsb-multi-storage-schema.json --coordinator
ベンチマーク設定ファイルを準備する
ベンチマークを実行するには、まずベンチマーク設定ファイルを準備する必要があります。設定ファイルには、少なくとも実行するワークロードモジュールの場所とデータベース設定が必要です。
以下は、TPC-C ベンチマークを実行するための設定例です。config_file
に指定する ScalarDB プロパティファイルは、スキーマをロードするの手順の1つとして設定したプロパティファイルである必要があります。
または、ScalarDB プロパティファイルを使用する代わりに、.toml
ファイルで各データベース設定項目を指定することもできます。config_file
が指定されている場合、[database_config]
の下の他のすべての設定は、コメントが解除されていても無視されます。
[modules]
[modules.preprocessor]
name = "com.scalar.db.benchmarks.tpcc.TpccLoader"
path = "./build/libs/scalardb-benchmarks-all.jar"
[modules.processor]
name = "com.scalar.db.benchmarks.tpcc.TpccBench"
path = "./build/libs/scalardb-benchmarks-all.jar"
[modules.postprocessor]
name = "com.scalar.db.benchmarks.tpcc.TpccReporter"
path = "./build/libs/scalardb-benchmarks-all.jar"
[database_config]
config_file = "<PATH_TO_SCALARDB_PROPERTIES_FILE>"
#contact_points = "localhost"
#contact_port = 9042
#username = "cassandra"
#password = "cassandra"
#storage = "cassandra"
モジュールに渡すパラメータは設定ファイルで定義できます。詳細については、以下のサンプル設定ファイルと 共通パラメータで使用可能なパラメータを参照してください。
- TPC-C:
tpcc-benchmark-config.toml
- YCSB:
ycsb-benchmark-config.toml
- マルチストレージ YCSB:
ycsb-multi-storage-benchmark-config.toml