diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/configurations.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/configurations.mdx index 0798d02af..0a53b02d7 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/configurations.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/configurations.mdx @@ -26,37 +26,131 @@ ScalarDB Cluster を使用している場合は、代わりに [ScalarDB Cluster ScalarDB トランザクションマネージャーでは、次の一般的な設定が利用可能です。 -| 名前 | 説明 | デフォルト | -|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| -| `scalar.db.transaction_manager` | ScalarDB のトランザクションマネージャー。[Consensus Commit](./consensus-commit.mdx) を使用するには `consensus-commit` を指定し、[非トランザクションストレージ操作を実行する](./run-non-transactional-storage-operations-through-library.mdx) には `single-crud-operation` を指定します。`single-crud-operation` を使用する場合、`scalar.db.consensus_commit` プレフィックスの下の設定は無視されることに注意してください。 | `consensus-commit` | -| `scalar.db.consensus_commit.isolation_level` | Consensus Commit に使用される分離レベル。`SNAPSHOT`、`SERIALIZABLE` または `READ_COMMITTED` のいずれかを指定できます。 | `SNAPSHOT` | -| `scalar.db.consensus_commit.coordinator.namespace` | Consensus Commit に使用される Coordinator テーブルの名前空間名。 | `coordinator` | +### `transaction_manager` + +- **フィールド:** `scalar.db.transaction_manager` +- **説明:** ScalarDB のトランザクションマネージャー。[Consensus Commit](./consensus-commit.mdx) を使用するには `consensus-commit` を指定し、[非トランザクションストレージ操作を実行する](./run-non-transactional-storage-operations-through-library.mdx) には `single-crud-operation` を指定します。`single-crud-operation` を使用する場合、`scalar.db.consensus_commit` プレフィックスの下の設定は無視されることに注意してください。 +- **デフォルト値:** `consensus-commit` + +### `isolation_level` + +- **フィールド:** `scalar.db.consensus_commit.isolation_level` +- **説明:** Consensus Commit に使用される分離レベル。`SNAPSHOT`、`SERIALIZABLE` または `READ_COMMITTED` のいずれかを指定できます。 +- **デフォルト値:** `SNAPSHOT` + +### `coordinator.namespace` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.namespace` +- **説明:** Consensus Commit に使用される Coordinator テーブルの名前空間名。 +- **デフォルト値:** `coordinator` ## パフォーマンス関連の設定 Consensus Commit トランザクションマネージャーでは、次のパフォーマンス関連の設定が利用できます。 -| 名前 | 説明 | デフォルト | -|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------| -| `scalar.db.consensus_commit.parallel_executor_count` | 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB プロセス内のトランザクション全体のスレッド数の合計を示します。 | `128` | -| `scalar.db.consensus_commit.parallel_preparation.enabled` | 準備フェーズが並行して実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.parallel_validation.enabled` | 検証フェーズ (`EXTRA_READ` 内) が並列で実行されるかどうか。 | `scalar.db.consensus_commit.parallel_commit.enabled` の値 | -| `scalar.db.consensus_commit.parallel_commit.enabled` | コミットフェーズが並列で実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.parallel_rollback.enabled` | ロールバックフェーズが並列で実行されるかどうか。 | `scalar.db.consensus_commit.parallel_commit.enabled` の値 | -| `scalar.db.consensus_commit.async_commit.enabled` | コミットフェーズが非同期で実行されるかどうか。 | `false` | -| `scalar.db.consensus_commit.async_rollback.enabled` | ロールバックフェーズが非同期に実行されるかどうか。 | `scalar.db.consensus_commit.async_commit.enabled` の値 | -| `scalar.db.consensus_commit.parallel_implicit_pre_read.enabled` | 暗黙的な事前読み取りが並列で実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.one_phase_commit.enabled` | 1フェーズコミット最適化が有効かどうか。 | `false` | -| `scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled` | 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。 | `true` | -| `scalar.db.consensus_commit.coordinator.group_commit.enabled` | トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェイスでは使用できません。 | `false` | -| `scalar.db.consensus_commit.coordinator.group_commit.slot_capacity` | グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `20` | -| `scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis` | グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `40` | -| `scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis` | 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `1200` | -| `scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis` | 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。 | `60000` | -| `scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis` | グループコミット関連のタイムアウトをチェックする間隔。 | `20` | -| `scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled` | グループコミットのメトリックが定期的にログに記録されるかどうか。 | `false` | - -#### ストレージ関連の設定 +### `parallel_executor_count` + +- **フィールド:** `scalar.db.consensus_commit.parallel_executor_count` +- **説明:** 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB Core プロセス内のトランザクション全体のスレッド数の合計を示します。 +- **デフォルト値:** `128` + +### `parallel_preparation.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_preparation.enabled` +- **説明:** 準備フェーズが並行して実行されるかどうか。 +- **デフォルト値:** `true` + +### `parallel_validation.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_validation.enabled` +- **説明:** 検証フェーズ (`EXTRA_READ` 内) が並列で実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.parallel_commit.enabled` の値 + +### `parallel_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_commit.enabled` +- **説明:** コミットフェーズが並列で実行されるかどうか。 +- **デフォルト値:** `true` + +### `parallel_rollback.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_rollback.enabled` +- **説明:** ロールバックフェーズが並列で実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.parallel_commit.enabled` の値 + +### `async_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.async_commit.enabled` +- **説明:** コミットフェーズが非同期で実行されるかどうか。 +- **デフォルト値:** `false` + +### `async_rollback.enabled` + +- **フィールド:** `scalar.db.consensus_commit.async_rollback.enabled` +- **説明:** ロールバックフェーズが非同期に実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.async_commit.enabled` の値 + +### `parallel_implicit_pre_read.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_implicit_pre_read.enabled` +- **説明:** 暗黙的な事前読み取りが並列で実行されるかどうか。 +- **デフォルト値:** `true` + +### `one_phase_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.one_phase_commit.enabled` +- **説明:** 1フェーズコミット最適化が有効かどうか。 +- **デフォルト値:** `false` + +### `coordinator.write_omission_on_read_only.enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled` +- **説明:** 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。 +- **デフォルト値:** `true` + +### `coordinator.group_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.enabled` +- **説明:** トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェースでは使用できません。 +- **デフォルト値:** `false` + +### `coordinator.group_commit.slot_capacity` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.slot_capacity` +- **説明:** グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `20` + +### `coordinator.group_commit.group_size_fix_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis` +- **説明:** グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `40` + +### `coordinator.group_commit.delayed_slot_move_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis` +- **説明:** 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `1200` + +### `coordinator.group_commit.old_group_abort_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis` +- **説明:** 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。 +- **デフォルト値:** `60000` + +### `coordinator.group_commit.timeout_check_interval_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis` +- **説明:** グループコミット関連のタイムアウトをチェックする間隔。 +- **デフォルト値:** `20` + +### `coordinator.group_commit.metrics_monitor_log_enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled` +- **説明:** グループコミットのメトリックが定期的にログに記録されるかどうか。 +- **デフォルト値:** `false` + +## ストレージ関連の設定 ScalarDB には、複数のストレージ実装をサポートするストレージ(データベース)抽象化レイヤーがあります。`scalar.db.storage` プロパティを使用してストレージ実装を指定できます。 @@ -66,29 +160,131 @@ ScalarDB には、複数のストレージ実装をサポートするストレ JDBC データベースでは次の設定を使用できます。 - | 名前 | 説明 | デフォルト | - |-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------| - | `scalar.db.storage` | `jdbc` を指定する必要があります。 | - | - | `scalar.db.contact_points` | JDBC 接続 URL。 | | - | `scalar.db.username` | データベースにアクセスするためのユーザー名。 | | - | `scalar.db.password` | データベースにアクセスするためのパスワード。 | | - | `scalar.db.jdbc.connection_pool.min_idle` | 接続プール内のアイドル接続の最小数。 | `20` | - | `scalar.db.jdbc.connection_pool.max_idle` | 接続プール内でアイドル状態のままにできる接続の最大数。 | `50` | - | `scalar.db.jdbc.connection_pool.max_total` | 接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `100` | - | `scalar.db.jdbc.prepared_statements_pool.enabled` | このプロパティを `true` に設定すると、準備済みステートメントプーリングが有効になります。 | `false` | - | `scalar.db.jdbc.prepared_statements_pool.max_open` | ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。 | `-1` | - | `scalar.db.jdbc.isolation_level` | JDBC の分離レベル。`READ_UNCOMMITTED`、`READ_COMMITTED`、`REPEATABLE_READ`、または `SERIALIZABLE` を指定できます。 | 基盤データベース固有 | - | `scalar.db.jdbc.table_metadata.connection_pool.min_idle` | テーブルメタデータの接続プール内のアイドル接続の最小数。 | `5` | - | `scalar.db.jdbc.table_metadata.connection_pool.max_idle` | テーブルメタデータの接続プール内でアイドル状態のままにできる接続の最大数。 | `10` | - | `scalar.db.jdbc.table_metadata.connection_pool.max_total` | テーブルメタデータの接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `25` | - | `scalar.db.jdbc.admin.connection_pool.min_idle` | 管理者の接続プール内のアイドル接続の最小数。 | `5` | - | `scalar.db.jdbc.admin.connection_pool.max_idle` | 管理者の接続プール内でアイドル状態のままにできる接続の最大数。 | `10` | - | `scalar.db.jdbc.admin.connection_pool.max_total` | 管理者の接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `25` | - | `scalar.db.jdbc.mysql.variable_key_column_size` | MySQL で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 | `128` | - | `scalar.db.jdbc.oracle.variable_key_column_size` | Oracle で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 | `128` | - | `scalar.db.jdbc.oracle.time_column.default_date_component` | Oracle で `TIME` データを格納するために使用される日付コンポーネントの値。Oracle には日付コンポーネントなしで時間のみを格納するデータ型がないため、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 | `1970-01-01` | - | `scalar.db.jdbc.db2.variable_key_column_size` | IBM Db2 で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 | `128` | - | `scalar.db.jdbc.db2.time_column.default_date_component` | IBM Db2 で `TIME` データを格納するために使用される日付コンポーネントの値。ScalarDB の `TIME` 型データを格納するために IBM Db2 の TIMESTAMP 型が使用されるため (小数秒の精度を提供するため)、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 | `1970-01-01` | +

`storage`

+ + - **フィールド:** `scalar.db.storage` + - **説明:** `jdbc` を指定する必要があります。 + - **デフォルト値:** empty + +

`contact_points`

+ + - **フィールド:** `scalar.db.contact_points` + - **説明:** JDBC 接続 URL。 + - **デフォルト値:** empty + +

`username`

+ + - **フィールド:** `scalar.db.username` + - **説明:** データベースにアクセスするためのユーザー名。 + - **デフォルト値:** empty + +

`password`

+ + - **フィールド:** `scalar.db.password` + - **説明:** データベースにアクセスするためのパスワード。 + - **デフォルト値:** empty + +

`jdbc.connection_pool.min_idle`

+ + - **フィールド:** `scalar.db.jdbc.connection_pool.min_idle` + - **説明:** コネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `20` + +

`jdbc.connection_pool.max_idle`

+ + - **フィールド:** `scalar.db.jdbc.connection_pool.max_idle` + - **説明:** コネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `50` + +

`jdbc.connection_pool.max_total`

+ + - **フィールド:** `scalar.db.jdbc.connection_pool.max_total` + - **説明:** 接続プールで同時にアクティブにできるアイドル接続と利用中接続の最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `100` + +

`jdbc.prepared_statements_pool.enabled`

+ + - **フィールド:** `scalar.db.jdbc.prepared_statements_pool.enabled` + - **説明:** このプロパティを `true` に設定すると、準備済みステートメントプーリングが有効になります。 + - **デフォルト値:** `false` + +

`jdbc.prepared_statements_pool.max_open`

+ + - **フィールド:** `scalar.db.jdbc.prepared_statements_pool.max_open` + - **説明:** ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `-1` + +

`jdbc.isolation_level`

+ + - **フィールド:** `scalar.db.jdbc.isolation_level` + - **説明:** JDBC の分離レベル。`READ_COMMITTED`、`REPEATABLE_READ`、または `SERIALIZABLE` を指定できます。 + - **デフォルト値:** 基盤データベース固有 + +

`jdbc.table_metadata.connection_pool.min_idle`

+ + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.min_idle` + - **説明:** テーブルメタデータのコネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `5` + +

`jdbc.table_metadata.connection_pool.max_idle`

+ + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.max_idle` + - **説明:** テーブルメタデータのコネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `10` + +

`jdbc.table_metadata.connection_pool.max_total`

+ + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.max_total` + - **説明:** テーブルメタデータの接続プールで同時にアクティブにできるアイドル接続と利用中接続の最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `25` + +

`jdbc.admin.connection_pool.min_idle`

+ + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.min_idle` + - **説明:** 管理者のコネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `5` + +

`jdbc.admin.connection_pool.max_idle`

+ + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.max_idle` + - **説明:** 管理者のコネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `10` + +

`jdbc.admin.connection_pool.max_total`

+ + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.max_total` + - **説明:** 管理者の接続プールで同時にアクティブにできるアイドル接続と利用中接続の最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `25` + +

`jdbc.mysql.variable_key_column_size`

+ + - **フィールド:** `scalar.db.jdbc.mysql.variable_key_column_size` + - **説明:** MySQL で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 + - **デフォルト値:** `128` + +

`jdbc.oracle.variable_key_column_size`

+ + - **フィールド:** `scalar.db.jdbc.oracle.variable_key_column_size` + - **説明:** Oracle で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 + - **デフォルト値:** `128` + +

`jdbc.oracle.time_column.default_date_component`

+ + - **フィールド:** `scalar.db.jdbc.oracle.time_column.default_date_component` + - **説明:** Oracle で `TIME` データを格納するために使用される日付コンポーネントの値。Oracle には日付コンポーネントなしで時間のみを格納するデータ型がないため、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 + - **デフォルト値:** `1970-01-01` + +

`jdbc.db2.variable_key_column_size`

+ + - **フィールド:** `scalar.db.jdbc.db2.variable_key_column_size` + - **説明:** IBM Db2 で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 + - **デフォルト値:** `128` + +

`jdbc.db2.time_column.default_date_component`

+ + - **フィールド:** `scalar.db.jdbc.db2.time_column.default_date_component` + - **説明:** IBM Db2 で `TIME` データを格納するために使用される日付コンポーネントの値。ScalarDB の `TIME` 型データを格納するために IBM Db2 の TIMESTAMP 型が使用されるため (小数秒の精度を提供するため)、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 + - **デフォルト値:** `1970-01-01` :::note @@ -120,45 +316,111 @@ YugabyteDB のスマートドライバーと負荷分散の詳細については DynamoDB では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| - | `scalar.db.storage` | `dynamo` を指定する必要があります。 | - | - | `scalar.db.contact_points` | ScalarDB が通信する AWS リージョン (例: `us-east-1`)。 | | - | `scalar.db.username` | AWS とやり取りするユーザーを識別するために使用される AWS アクセスキー。 | | - | `scalar.db.password` | AWS と対話するユーザーを認証するために使用される AWS シークレットアクセスキー。 | | - | `scalar.db.dynamo.endpoint_override` | ScalarDB が通信する Amazon DynamoDB エンドポイント。これは主に、AWS サービスではなくローカルインスタンスでのテストに使用されます。 | | - | `scalar.db.dynamo.namespace.prefix` | ユーザー名前空間とメタデータ名前空間名のプレフィックス。AWS では単一の AWS リージョン内で一意のテーブル名を持つ必要があるため、単一の AWS リージョン内で複数の ScalarDB 環境 (開発、本番など) を使用する場合に便利です。 | | +

`storage`

+ + - **フィールド:** `scalar.db.storage` + - **説明:** `dynamo` を指定する必要があります。 + - **デフォルト値:** empty + +

`contact_points`

+ + - **フィールド:** `scalar.db.contact_points` + - **説明:** ScalarDB が通信する AWS リージョン (例: `us-east-1`)。 + - **デフォルト値:** empty + +

`username`

+ + - **フィールド:** `scalar.db.username` + - **説明:** AWS とやり取りするユーザーを識別するために使用される AWS アクセスキー。 + - **デフォルト値:** empty + +

`password`

+ + - **フィールド:** `scalar.db.password` + - **説明:** AWS と対話するユーザーを認証するために使用される AWS シークレットアクセスキー。 + - **デフォルト値:** empty + +

`dynamo.endpoint_override`

+ + - **フィールド:** `scalar.db.dynamo.endpoint_override` + - **説明:** ScalarDB が通信する Amazon DynamoDB エンドポイント。これは主に、AWS サービスではなくローカルインスタンスでのテストに使用されます。 + - **デフォルト値:** empty + +

`dynamo.namespace.prefix`

+ + - **フィールド:** `scalar.db.dynamo.namespace.prefix` + - **説明:** ユーザー名前空間とメタデータ名前空間名のプレフィックス。AWS では単一の AWS リージョン内で一意のテーブル名を持つ必要があるため、単一の AWS リージョン内で複数の ScalarDB 環境 (開発、本番など) を使用する場合に便利です。 + - **デフォルト値:** empty
Cosmos DB for NoSQL では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |--------------------------------------|------------------------------------------------------------------------------------------------------------|-----------| - | `scalar.db.storage` | `cosmos` を指定する必要があります。 | - | - | `scalar.db.contact_points` | ScalarDB が通信する NoSQL エンドポイント用の Azure Cosmos DB。 | | - | `scalar.db.password` | Azure Cosmos DB for NoSQL にアクセスするための認証を実行するために使用されるマスターキーまたは読み取り専用キーのいずれか。 | | - | `scalar.db.cosmos.consistency_level` | Cosmos DB 操作に使用される一貫性レベル。`STRONG` または `BOUNDED_STALENESS` を指定できます。 | `STRONG` | +

`storage`

+ + - **フィールド:** `scalar.db.storage` + - **説明:** `cosmos` を指定する必要があります。 + - **デフォルト値:** empty + +

`contact_points`

+ + - **フィールド:** `scalar.db.contact_points` + - **説明:** ScalarDB が通信する NoSQL エンドポイント用の Azure Cosmos DB。 + - **デフォルト値:** empty + +

`password`

+ + - **フィールド:** `scalar.db.password` + - **説明:** Azure Cosmos DB for NoSQL にアクセスするための認証を実行するために使用されるマスターキーまたは読み取り専用キーのいずれか。 + - **デフォルト値:** empty + +

`cosmos.consistency_level`

+ + - **フィールド:** `scalar.db.cosmos.consistency_level` + - **説明:** Cosmos DB 操作に使用される一貫性レベル。`STRONG` または `BOUNDED_STALENESS` を指定できます。 + - **デフォルト値:** `STRONG`
Cassandra では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |----------------------------|--------------------------------------|----------| - | `scalar.db.storage` | `cassandra` を指定する必要があります。 | - | - | `scalar.db.contact_points` | カンマで区切られた連絡先。 | | - | `scalar.db.contact_port` | すべての連絡先ポイントのポート番号。 | | - | `scalar.db.username` | データベースにアクセスするためのユーザー名。 | | - | `scalar.db.password` | データベースにアクセスするためのパスワード。 | | +

`storage`

+ + - **フィールド:** `scalar.db.storage` + - **説明:** `cassandra` を指定する必要があります。 + - **デフォルト値:** empty + +

`contact_points`

+ + - **フィールド:** `scalar.db.contact_points` + - **説明:** カンマで区切られた連絡先。 + - **デフォルト値:** empty + +

`contact_port`

+ + - **フィールド:** `scalar.db.contact_port` + - **説明:** すべての連絡先ポイントのポート番号。 + - **デフォルト値:** empty + +

`username`

+ + - **フィールド:** `scalar.db.username` + - **説明:** データベースにアクセスするためのユーザー名。 + - **デフォルト値:** empty + +

`password`

+ + - **フィールド:** `scalar.db.password` + - **説明:** データベースにアクセスするためのパスワード。 + - **デフォルト値:** empty
-##### マルチストレージのサポート +### マルチストレージのサポート ScalarDB は、複数のストレージ実装の同時使用をサポートしています。`scalar.db.storage` プロパティの値として `multi-storage` を指定することで、複数のストレージを使用できます。 複数のストレージの使用の詳細については、[マルチストレージトランザクション](multi-storage-transactions.mdx)を参照してください。 -##### クロスパーティションスキャン設定 +### クロスパーティションスキャン設定 以下で説明するようにクロスパーティションスキャンオプションを有効にすると、`Scan` 操作でパーティション全体のすべてのレコードを取得できます。さらに、`cross_partition_scan.filtering` と `cross_partition_scan.ordering` をそれぞれ有効にすることで、クロスパーティション `Scan` 操作で任意の条件と順序を指定できます。現在、順序付けオプション付きのクロスパーティションスキャンは、JDBC データベースでのみ使用できます。フィルタリングと順序付けを有効にするには、`scalar.db.cross_partition_scan.enabled` を `true` に設定する必要があります。 @@ -170,30 +432,61 @@ ScalarDB は、複数のストレージ実装の同時使用をサポートし ::: -| 名前 | 説明 | デフォルト | -|----------------------------------------------------|---------------------------------------------------|----------| -| `scalar.db.cross_partition_scan.enabled` | パーティション間スキャンを有効にします。 | `false` | -| `scalar.db.cross_partition_scan.filtering.enabled` | クロスパーティションスキャンでフィルタリングを有効にします。 | `false` | -| `scalar.db.cross_partition_scan.ordering.enabled` | パーティション間スキャンでの順序付けを有効にします。 | `false` | +#### `cross_partition_scan.enabled` + +- **フィールド:** `scalar.db.cross_partition_scan.enabled` +- **説明:** パーティション間スキャンを有効にします。 +- **デフォルト値:** `false` + +#### `cross_partition_scan.filtering.enabled` -##### スキャンフェッチサイズ +- **フィールド:** `scalar.db.cross_partition_scan.filtering.enabled` +- **説明:** クロスパーティションスキャンでフィルタリングを有効にします。 +- **デフォルト値:** `false` + +#### `cross_partition_scan.ordering.enabled` + +- **フィールド:** `scalar.db.cross_partition_scan.ordering.enabled` +- **説明:** パーティション間スキャンでの順序付けを有効にします。 +- **デフォルト値:** `false` + +### スキャンフェッチサイズ ストレージのスキャン操作でフェッチサイズを次のプロパティで設定できます。 -| 名前 | 説明 | デフォルト | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-----------| -| `scalar.db.scan_fetch_size` | ストレージのスキャン操作時に一度に取得するレコード数を指定します。値を大きくすると、大きな結果セットの場合にストレージへのアクセスの往復回数が減りパフォーマンスが向上しますが、メモリ使用量も増加します。値を小さくするとメモリ使用量は減りますが、レイテンシが増加する場合があります。 | `10` | +#### `scan_fetch_size` + +- **フィールド:** `scalar.db.scan_fetch_size` +- **説明:** ストレージのスキャン操作時に一度に取得するレコード数を指定します。値を大きくすると、大きな結果セットの場合にストレージへのアクセスの往復回数が減りパフォーマンスが向上しますが、メモリ使用量も増加します。値を小さくするとメモリ使用量は減りますが、レイテンシが増加する場合があります。 +- **デフォルト値:** `10` ## その他の ScalarDB 設定 ScalarDB で使用できる追加の設定は次のとおりです。 -| 名前 | 説明 | デフォルト | -|------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| `scalar.db.metadata.cache_expiration_time_secs` | ScalarDB には、データベースへのリクエスト数を減らすためのメタデータキャッシュがあります。この設定では、キャッシュの有効期限を秒単位で指定します。`-1`を指定した場合は、キャッシュは期限切れになりません。 | `60` | -| `scalar.db.active_transaction_management.expiration_time_millis` | ScalarDB は進行中のトランザクションを管理しており、トランザクション ID を使用して再開できます。この設定は、このトランザクション管理機能の有効期限をミリ秒単位で指定します。 | `-1` (有効期限なし) | -| `scalar.db.consensus_commit.include_metadata.enabled` | Consensus Commit を使用している場合に、`true` に設定すると、`Get` および `Scan` 操作の結果にトランザクションメタデータが含まれます。特定のテーブルのトランザクションメタデータ列の詳細を表示するには、`DistributedTransactionAdmin.getTableMetadata()` メソッドを使用します。このメソッドは、トランザクションメタデータ列が追加されたテーブルメタデータを返します。この設定を使用すると、トランザクション関連の問題を調査するのに役立ちます。 | `false` | -| `scalar.db.default_namespace_name` | 指定された名前空間名は、名前空間を指定していない操作によって使用されます。 | | +### `metadata.cache_expiration_time_secs` + +- **フィールド:** `scalar.db.metadata.cache_expiration_time_secs` +- **説明:** ScalarDB には、データベースへのリクエスト数を減らすためのメタデータキャッシュがあります。この設定では、キャッシュの有効期限を秒単位で指定します。`-1`を指定した場合は、キャッシュは期限切れになりません。 +- **デフォルト値:** `60` + +### `active_transaction_management.expiration_time_millis` + +- **フィールド:** `scalar.db.active_transaction_management.expiration_time_millis` +- **説明:** ScalarDB は進行中のトランザクションを管理しており、トランザクション ID を使用して再開できます。この設定は、このトランザクション管理機能の有効期限をミリ秒単位で指定します。 +- **デフォルト値:** `-1` (有効期限なし) + +### `consensus_commit.include_metadata.enabled` + +- **フィールド:** `scalar.db.consensus_commit.include_metadata.enabled` +- **説明:** Consensus Commit を使用している場合に、`true` に設定すると、`Get` および `Scan` 操作の結果にトランザクションメタデータが含まれます。特定のテーブルのトランザクションメタデータ列の詳細を表示するには、`DistributedTransactionAdmin.getTableMetadata()` メソッドを使用します。このメソッドは、トランザクションメタデータ列が追加されたテーブルメタデータを返します。この設定を使用すると、トランザクション関連の問題を調査するのに役立ちます。 +- **デフォルト値:** `false` + +### `default_namespace_name` + +- **フィールド:** `scalar.db.default_namespace_name` +- **説明:** 指定された名前空間名は、名前空間を指定していない操作によって使用されます。 +- **デフォルト値:** empty ## プレースホルダーの使用 @@ -217,7 +510,7 @@ flowchart LR app --> db ``` -この例の設定では、アプリ (Consensus Commit を備えた ScalarDB ライブラリ) が、基盤となるストレージまたはデータベース (この場合は Cassandra) に直接接続します。 +この設定例では、アプリ (Consensus Commit を備えた ScalarDB ライブラリ) が、基盤となるストレージまたはデータベース (この場合は Cassandra) に直接接続します。 :::warning diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-cluster/scalardb-cluster-configurations.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-cluster/scalardb-cluster-configurations.mdx index d480b1804..47725f03e 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-cluster/scalardb-cluster-configurations.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/scalardb-cluster/scalardb-cluster-configurations.mdx @@ -25,52 +25,203 @@ ScalarDB Cluster では、次の一般的な設定が利用可能です。 #### トランザクション管理設定 -| 名前 | 説明 | デフォルト | -|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| -| `scalar.db.transaction_manager` | ScalarDB のトランザクションマネージャー。[Consensus Commit](../consensus-commit.mdx) を使用するには `consensus-commit` を指定し、[非トランザクションストレージ操作を実行する](./run-non-transactional-storage-operations-through-scalardb-cluster.mdx) には `single-crud-operation` を指定します。`single-crud-operation` を使用する場合、`scalar.db.consensus_commit` プレフィックスの下の設定は無視されることに注意してください。 | `consensus-commit` | -| `scalar.db.consensus_commit.isolation_level` | Consensus Commit に使用される分離レベル。`SNAPSHOT`、`SERIALIZABLE` または `READ_COMMITTED` のいずれかを指定できます。 | `SNAPSHOT` | -| `scalar.db.consensus_commit.coordinator.namespace` | Consensus Commit に使用される Coordinator テーブルの名前空間名。 | `coordinator` | +##### `transaction_manager` + +- **フィールド:** `scalar.db.transaction_manager` +- **説明:** ScalarDB のトランザクションマネージャー。[Consensus Commit](../consensus-commit.mdx) を使用するには `consensus-commit` を指定し、[非トランザクションストレージ操作を実行する](./run-non-transactional-storage-operations-through-scalardb-cluster.mdx) には `single-crud-operation` を指定します。`single-crud-operation` を使用する場合、`scalar.db.consensus_commit` プレフィックスの下の設定は無視されることに注意してください。 +- **デフォルト値:** `consensus-commit` + +##### `isolation_level` + +- **フィールド:** `scalar.db.consensus_commit.isolation_level` +- **説明:** Consensus Commit に使用される分離レベル。`SNAPSHOT`、`SERIALIZABLE` または `READ_COMMITTED` のいずれかを指定できます。 +- **デフォルト値:** `SNAPSHOT` + +##### `coordinator.namespace` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.namespace` +- **説明:** Consensus Commit に使用される Coordinator テーブルの名前空間名。 +- **デフォルト値:** `coordinator` #### ノード設定 -| 名前 | 説明 | デフォルト | -|-------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| -| `scalar.db.cluster.membership.type` | メンバーシップの種類。現在、`KUBERNETES` のみ指定できます。 | `KUBERNETES` | -| `scalar.db.cluster.membership.kubernetes.endpoint.namespace_name` | この設定は、`KUBERNETES` メンバーシップタイプ用です。[endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前空間名。 | `default` | -| `scalar.db.cluster.membership.kubernetes.endpoint.name` | この設定は、`KUBERNETES` メンバーシップタイプ用です。メンバーシップ情報を取得するための [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前。 | | -| `scalar.db.cluster.node.decommissioning_duration_secs` | 廃止期間(秒単位)。 | `30` | -| `scalar.db.cluster.node.grpc.max_inbound_message_size` | 受信可能な最大メッセージサイズ。 | gRPCのデフォルト値 | -| `scalar.db.cluster.node.grpc.max_inbound_metadata_size` | 受信できるメタデータの最大サイズ。 | gRPCのデフォルト値 | -| `scalar.db.cluster.node.port` | ScalarDB Cluster ノードのポート番号。 | `60053` | -| `scalar.db.cluster.node.prometheus_exporter_port` | Prometheus エクスポーターのポート番号。 | `9080` | -| `scalar.db.cluster.grpc.deadline_duration_millis` | gRPC の期限期間(ミリ秒単位)。 | `60000` (60秒) | -| `scalar.db.cluster.node.standalone_mode.enabled` | スタンドアロンモードが有効かどうか。スタンドアロンモードが有効になっている場合、メンバーシップ設定 (`scalar.db.cluster.membership.*`) は無視されることに注意してください。 | `false` | -| `scalar.db.transaction.enabled` | トランザクション機能が有効かどうか。たとえば、埋め込み機能のみを使用する場合は、このプロパティを `false` に設定できます。 | `true` | -| `scalar.db.cluster.node.scanner_management.expiration_time_millis` | ScalarDB Cluster ノードは進行中のスキャナーを管理しています。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のスキャナーを期限切れにします。この設定では、このスキャナー管理機能の有効期限をミリ秒単位で指定します。 | `60000` (60秒) | +##### `cluster.membership.type` + +- **フィールド:** `scalar.db.cluster.membership.type` +- **説明:** メンバーシップの種類。現在、`KUBERNETES` のみ指定できます。 +- **デフォルト値:** `KUBERNETES` + +##### `cluster.membership.kubernetes.endpoint.namespace_name` + +- **フィールド:** `scalar.db.cluster.membership.kubernetes.endpoint.namespace_name` +- **説明:** この設定は、`KUBERNETES` メンバーシップタイプ用です。[endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前空間名。 +- **デフォルト値:** `default` + +##### `cluster.membership.kubernetes.endpoint.name` + +- **フィールド:** `scalar.db.cluster.membership.kubernetes.endpoint.name` +- **説明:** この設定は、`KUBERNETES` メンバーシップタイプ用です。メンバーシップ情報を取得するための [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前。 +- **デフォルト値:** empty + +##### `cluster.node.decommissioning_duration_secs` + +- **フィールド:** `scalar.db.cluster.node.decommissioning_duration_secs` +- **説明:** ScalarDB Cluster ノード終了時に実際に廃止されるまでの期間(秒単位)。 +- **デフォルト値:** `30` + +##### `cluster.node.grpc.max_inbound_message_size` + +- **フィールド:** `scalar.db.cluster.node.grpc.max_inbound_message_size` +- **説明:** 受信可能な最大メッセージサイズ。 +- **デフォルト値:** gRPCのデフォルト値 + +##### `cluster.node.grpc.max_inbound_metadata_size` + +- **フィールド:** `scalar.db.cluster.node.grpc.max_inbound_metadata_size` +- **説明:** 受信できるメタデータの最大サイズ。 +- **デフォルト値:** gRPCのデフォルト値 + +##### `cluster.node.port` + +- **フィールド:** `scalar.db.cluster.node.port` +- **説明:** ScalarDB Cluster ノードのポート番号。 +- **デフォルト値:** `60053` + +##### `cluster.node.prometheus_exporter_port` + +- **フィールド:** `scalar.db.cluster.node.prometheus_exporter_port` +- **説明:** Prometheus エクスポーターのポート番号。 +- **デフォルト値:** `9080` + +##### `cluster.grpc.deadline_duration_millis` + +- **フィールド:** `scalar.db.cluster.grpc.deadline_duration_millis` +- **説明:** gRPC の期限期間(ミリ秒単位)。 +- **デフォルト値:** `60000` (60秒) + +##### `cluster.node.standalone_mode.enabled` + +- **フィールド:** `scalar.db.cluster.node.standalone_mode.enabled` +- **説明:** スタンドアロンモードが有効かどうか。スタンドアロンモードが有効になっている場合、メンバーシップ設定 (`scalar.db.cluster.membership.*`) は無視されることに注意してください。 +- **デフォルト値:** `false` + +##### `transaction.enabled` + +- **フィールド:** `scalar.db.transaction.enabled` +- **説明:** トランザクション機能が有効かどうか。たとえば、埋め込み機能のみを使用する場合は、このプロパティを `false` に設定できます。 +- **デフォルト値:** `true` + +##### `cluster.node.scanner_management.expiration_time_millis` + +- **フィールド:** `scalar.db.cluster.node.scanner_management.expiration_time_millis` +- **説明:** ScalarDB Cluster ノードは進行中のスキャナーを管理しています。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のスキャナーを期限切れにします。この設定では、このスキャナー管理機能の有効期限をミリ秒単位で指定します。 +- **デフォルト値:** `60000` (60秒) ### パフォーマンス関連の設定 Consensus Commit トランザクションマネージャーでは、次のパフォーマンス関連の設定が利用できます。 -| 名前 | 説明 | デフォルト | -|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| -| `scalar.db.consensus_commit.parallel_executor_count` | 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB プロセス内のトランザクション全体のスレッド数の合計を示します。 | `128` | -| `scalar.db.consensus_commit.parallel_preparation.enabled` | 準備フェーズが並行して実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.parallel_validation.enabled` | 検証フェーズ (`EXTRA_READ` 内) が並列で実行されるかどうか。 | `scalar.db.consensus_commit.parallel_commit.enabled` の値 | -| `scalar.db.consensus_commit.parallel_commit.enabled` | コミットフェーズが並列で実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.parallel_rollback.enabled` | ロールバックフェーズが並列で実行されるかどうか。 | `scalar.db.consensus_commit.parallel_commit.enabled` の値 | -| `scalar.db.consensus_commit.async_commit.enabled` | コミットフェーズが非同期で実行されるかどうか。 | `false` | -| `scalar.db.consensus_commit.async_rollback.enabled` | ロールバックフェーズが非同期に実行されるかどうか。 | `scalar.db.consensus_commit.async_commit.enabled` の値 | -| `scalar.db.consensus_commit.parallel_implicit_pre_read.enabled` | 暗黙的な事前読み取りが並列で実行されるかどうか。 | `true` | -| `scalar.db.consensus_commit.one_phase_commit.enabled` | 1フェーズコミット最適化が有効かどうか。 | `false` | -| `scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled` | 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。 | `true` | -| `scalar.db.consensus_commit.coordinator.group_commit.enabled` | トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェイスでは使用できません。 | `false` | -| `scalar.db.consensus_commit.coordinator.group_commit.slot_capacity` | グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `20` | -| `scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis` | グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `40` | -| `scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis` | 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] | `1200` | -| `scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis` | 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。 | `60000` | -| `scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis` | グループコミット関連のタイムアウトをチェックする間隔。 | `20` | -| `scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled` | グループコミットのメトリックが定期的にログに記録されるかどうか。 | `false` | +##### `parallel_executor_count` + +- **フィールド:** `scalar.db.consensus_commit.parallel_executor_count` +- **説明:** 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB Core プロセス内のトランザクション全体のスレッド数の合計を示します。 +- **デフォルト値:** `128` + +##### `parallel_preparation.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_preparation.enabled` +- **説明:** 準備フェーズが並行して実行されるかどうか。 +- **デフォルト値:** `true` + +##### `parallel_validation.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_validation.enabled` +- **説明:** 検証フェーズ (`EXTRA_READ` 内) が並列で実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.parallel_commit.enabled` の値 + +##### `parallel_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_commit.enabled` +- **説明:** コミットフェーズが並列で実行されるかどうか。 +- **デフォルト値:** `true` + +##### `parallel_rollback.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_rollback.enabled` +- **説明:** ロールバックフェーズが並列で実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.parallel_commit.enabled` の値 + +##### `async_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.async_commit.enabled` +- **説明:** コミットフェーズが非同期で実行されるかどうか。 +- **デフォルト値:** `false` + +##### `async_rollback.enabled` + +- **フィールド:** `scalar.db.consensus_commit.async_rollback.enabled` +- **説明:** ロールバックフェーズが非同期に実行されるかどうか。 +- **デフォルト値:** `scalar.db.consensus_commit.async_commit.enabled` の値 + +##### `parallel_implicit_pre_read.enabled` + +- **フィールド:** `scalar.db.consensus_commit.parallel_implicit_pre_read.enabled` +- **説明:** 暗黙的な事前読み取りが並列で実行されるかどうか。 +- **デフォルト値:** `true` + +##### `one_phase_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.one_phase_commit.enabled` +- **説明:** 1フェーズコミット最適化が有効かどうか。 +- **デフォルト値:** `false` + +##### `coordinator.write_omission_on_read_only.enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled` +- **説明:** 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。 +- **デフォルト値:** `true` + +##### `coordinator.group_commit.enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.enabled` +- **説明:** トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェイスでは使用できません。 +- **デフォルト値:** `false` + +##### `coordinator.group_commit.slot_capacity` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.slot_capacity` +- **説明:** グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `20` + +##### `coordinator.group_commit.group_size_fix_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis` +- **説明:** グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `40` + +##### `coordinator.group_commit.delayed_slot_move_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis` +- **説明:** 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。[^1] +- **デフォルト値:** `1200` + +##### `coordinator.group_commit.old_group_abort_timeout_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis` +- **説明:** 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。 +- **デフォルト値:** `60000` + +##### `coordinator.group_commit.timeout_check_interval_millis` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis` +- **説明:** グループコミット関連のタイムアウトをチェックする間隔。 +- **デフォルト値:** `20` + +##### `coordinator.group_commit.metrics_monitor_log_enabled` + +- **フィールド:** `scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled` +- **説明:** グループコミットのメトリックが定期的にログに記録されるかどうか。 +- **デフォルト値:** `false` ### ストレージ関連の設定 @@ -82,26 +233,113 @@ ScalarDB には、複数のストレージ実装をサポートするストレ JDBC データベースでは次の設定を使用できます。 - | 名前 | 説明 | デフォルト | - |-----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------| - | `scalar.db.storage` | `jdbc` を指定する必要があります。 | - | - | `scalar.db.contact_points` | JDBC 接続 URL。 | | - | `scalar.db.username` | データベースにアクセスするためのユーザー名。 | | - | `scalar.db.password` | データベースにアクセスするためのパスワード。 | | - | `scalar.db.jdbc.connection_pool.min_idle` | 接続プール内のアイドル接続の最小数。 | `20` | - | `scalar.db.jdbc.connection_pool.max_idle` | 接続プール内でアイドル状態のままにできる接続の最大数。 | `50` | - | `scalar.db.jdbc.connection_pool.max_total` | 接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `100` | - | `scalar.db.jdbc.prepared_statements_pool.enabled` | このプロパティを `true` に設定すると、準備されたステートメントのプールが有効になります。 | `false` | - | `scalar.db.jdbc.prepared_statements_pool.max_open` | ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。 | `-1` | - | `scalar.db.jdbc.isolation_level` | JDBC の分離レベル。`READ_UNCOMMITTED`、`READ_COMMITTED`、`REPEATABLE_READ`、または `SERIALIZABLE` を指定できます。 | 基盤データベース固有 | - | `scalar.db.jdbc.table_metadata.connection_pool.min_idle` | テーブルメタデータの接続プール内のアイドル接続の最小数。 | `5` | - | `scalar.db.jdbc.table_metadata.connection_pool.max_idle` | テーブルメタデータの接続プール内でアイドル状態のままにできる接続の最大数。 | `10` | - | `scalar.db.jdbc.table_metadata.connection_pool.max_total` | テーブルメタデータの接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `25` | - | `scalar.db.jdbc.admin.connection_pool.min_idle` | 管理者の接続プール内のアイドル接続の最小数。 | `5` | - | `scalar.db.jdbc.admin.connection_pool.max_idle` | 管理者の接続プール内でアイドル状態のままにできる接続の最大数。 | `10` | - | `scalar.db.jdbc.admin.connection_pool.max_total` | 管理者の接続プールで同時にアクティブにできるアイドル接続と借用接続の最大合計数。制限がない場合は負の値を使用します。 | `25` | - | `scalar.db.jdbc.db2.variable_key_column_size` | IBM Db2 で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 | `128` | - | `scalar.db.jdbc.db2.time_column.default_date_component` | IBM Db2 で `TIME` データを格納するために使用される日付コンポーネントの値。ScalarDB の `TIME` 型データを格納するために IBM Db2 の TIMESTAMP 型が使用されるため (小数秒の精度を提供するため)、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 | `1970-01-01` | + ##### `storage` + + - **フィールド:** `scalar.db.storage` + - **説明:** `jdbc` を指定する必要があります。 + - **デフォルト値:** - + + ##### `contact_points` + + - **フィールド:** `scalar.db.contact_points` + - **説明:** JDBC 接続 URL。 + - **デフォルト値:** + + ##### `username` + + - **フィールド:** `scalar.db.username` + - **説明:** データベースにアクセスするためのユーザー名。 + - **デフォルト値:** + + ##### `password` + + - **フィールド:** `scalar.db.password` + - **説明:** データベースにアクセスするためのパスワード。 + - **デフォルト値:** + + ##### `jdbc.connection_pool.min_idle` + + - **フィールド:** `scalar.db.jdbc.connection_pool.min_idle` + - **説明:** コネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `20` + + ##### `jdbc.connection_pool.max_idle` + + - **フィールド:** `scalar.db.jdbc.connection_pool.max_idle` + - **説明:** コネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `50` + + ##### `jdbc.connection_pool.max_total` + + - **フィールド:** `scalar.db.jdbc.connection_pool.max_total` + - **説明:** コネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `100` + + ##### `jdbc.prepared_statements_pool.enabled` + + - **フィールド:** `scalar.db.jdbc.prepared_statements_pool.enabled` + - **説明:** このプロパティを `true` に設定すると、準備されたステートメントのプールが有効になります。 + - **デフォルト値:** `false` + + ##### `jdbc.prepared_statements_pool.max_open` + + - **フィールド:** `scalar.db.jdbc.prepared_statements_pool.max_open` + - **説明:** ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `-1` + + ##### `jdbc.isolation_level` + + - **フィールド:** `scalar.db.jdbc.isolation_level` + - **説明:** JDBC の分離レベル。`READ_COMMITTED`、`REPEATABLE_READ`、または `SERIALIZABLE` を指定できます。 + - **デフォルト値:** 基盤データベース固有 + + ##### `jdbc.table_metadata.connection_pool.min_idle` + + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.min_idle` + - **説明:** テーブルメタデータのコネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `5` + + ##### `jdbc.table_metadata.connection_pool.max_idle` + + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.max_idle` + - **説明:** テーブルメタデータのコネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `10` + + ##### `jdbc.table_metadata.connection_pool.max_total` + + - **フィールド:** `scalar.db.jdbc.table_metadata.connection_pool.max_total` + - **説明:** テーブルメタデータのコネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `25` + + ##### `jdbc.admin.connection_pool.min_idle` + + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.min_idle` + - **説明:** 管理者のコネクションプール内のアイドルコネクションの最小数。 + - **デフォルト値:** `5` + + ##### `jdbc.admin.connection_pool.max_idle` + + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.max_idle` + - **説明:** 管理者のコネクションプール内でアイドル状態のままにできるコネクションの最大数。 + - **デフォルト値:** `10` + + ##### `jdbc.admin.connection_pool.max_total` + + - **フィールド:** `scalar.db.jdbc.admin.connection_pool.max_total` + - **説明:** 管理者のコネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。 + - **デフォルト値:** `25` + + ##### `jdbc.db2.variable_key_column_size` + + - **フィールド:** `scalar.db.jdbc.db2.variable_key_column_size` + - **説明:** IBM Db2 で主キーまたはセカンダリキーとして使用される場合の TEXT 列と BLOB 列の列サイズ。最小 64 バイト。 + - **デフォルト値:** `128` + + ##### `jdbc.db2.time_column.default_date_component` + + - **フィールド:** `scalar.db.jdbc.db2.time_column.default_date_component` + - **説明:** IBM Db2 で `TIME` データを格納するために使用される日付コンポーネントの値。ScalarDB の `TIME` 型データを格納するために IBM Db2 の TIMESTAMP 型が使用されるため (小数秒の精度を提供するため)、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つ `TIME` データを保存します。 + - **デフォルト値:** `1970-01-01` :::note @@ -118,35 +356,101 @@ scalar.db.contact_points=jdbc:sqlite:?busy_timeout=10000 DynamoDB では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------| - | `scalar.db.storage` | `dynamo` を指定する必要があります。 | - | - | `scalar.db.contact_points` | ScalarDB が通信する AWS リージョン (例: `us-east-1`)。 | | - | `scalar.db.username` | AWS とやり取りするユーザーを識別するために使用される AWS アクセスキー。 | | - | `scalar.db.password` | AWS と対話するユーザーを認証するために使用される AWS シークレットアクセスキー。 | | - | `scalar.db.dynamo.endpoint_override` | ScalarDB が通信する Amazon DynamoDB エンドポイント。これは主に、AWS サービスではなくローカルインスタンスでのテストに使用されます。 | | - | `scalar.db.dynamo.namespace.prefix` | ユーザー名前空間とメタデータ名前空間名のプレフィックス。AWS では単一の AWS リージョン内で一意のテーブル名を持つ必要があるため、単一の AWS リージョン内で複数の ScalarDB 環境 (開発、本番など) を使用する場合に便利です。 | | + ##### `storage` + + - **フィールド:** `scalar.db.storage` + - **説明:** `dynamo` を指定する必要があります。 + - **デフォルト値:** - + + ##### `contact_points` + + - **フィールド:** `scalar.db.contact_points` + - **説明:** ScalarDB が通信する AWS リージョン (例: `us-east-1`)。 + - **デフォルト値:** + + ##### `username` + + - **フィールド:** `scalar.db.username` + - **説明:** AWS とやり取りするユーザーを識別するために使用される AWS アクセスキー。 + - **デフォルト値:** + + ##### `password` + + - **フィールド:** `scalar.db.password` + - **説明:** AWS と対話するユーザーを認証するために使用される AWS シークレットアクセスキー。 + - **デフォルト値:** + + ##### `dynamo.endpoint_override` + + - **フィールド:** `scalar.db.dynamo.endpoint_override` + - **説明:** ScalarDB が通信する Amazon DynamoDB エンドポイント。これは主に、AWS サービスではなくローカルインスタンスでのテストに使用されます。 + - **デフォルト値:** + + ##### `dynamo.namespace.prefix` + + - **フィールド:** `scalar.db.dynamo.namespace.prefix` + - **説明:** ユーザー名前空間とメタデータ名前空間名のプレフィックス。AWS では単一の AWS リージョン内で一意のテーブル名を持つ必要があるため、単一の AWS リージョン内で複数の ScalarDB 環境 (開発、本番など) を使用する場合に便利です。 + - **デフォルト値:** CosmosDB for NoSQL では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |--------------------------------------|----------------------------------------------------------------------------------------------------------|----------| - | `scalar.db.storage` | `cosmos` を指定する必要があります。 | - | - | `scalar.db.contact_points` | ScalarDB が通信する NoSQL エンドポイント用の Azure Cosmos DB。 | | - | `scalar.db.password` | Azure Cosmos DB for NoSQL にアクセスするための認証を実行するために使用されるマスターキーまたは読み取り専用キーのいずれか。 | | - | `scalar.db.cosmos.consistency_level` | Cosmos DB 操作に使用される一貫性レベル。`STRONG` または `BOUNDED_STALENESS` を指定できます。 | `STRONG` | + ##### `storage` + + - **フィールド:** `scalar.db.storage` + - **説明:** `cosmos` を指定する必要があります。 + - **デフォルト値:** - + + ##### `contact_points` + + - **フィールド:** `scalar.db.contact_points` + - **説明:** ScalarDB が通信する NoSQL エンドポイント用の Azure Cosmos DB。 + - **デフォルト値:** + + ##### `password` + + - **フィールド:** `scalar.db.password` + - **説明:** Azure Cosmos DB for NoSQL にアクセスするための認証を実行するために使用されるマスターキーまたは読み取り専用キーのいずれか。 + - **デフォルト値:** + + ##### `cosmos.consistency_level` + + - **フィールド:** `scalar.db.cosmos.consistency_level` + - **説明:** Cosmos DB 操作に使用される一貫性レベル。`STRONG` または `BOUNDED_STALENESS` を指定できます。 + - **デフォルト値:** `STRONG` Cassandra では次の設定が利用可能です。 - | 名前 | 説明 | デフォルト | - |-----------------------------------------|-----------------------------------------------------------------------|------------| - | `scalar.db.storage` | `cassandra` を指定する必要があります。 | - | - | `scalar.db.contact_points` | カンマで区切られた連絡先。 | | - | `scalar.db.contact_port` | すべての連絡先ポイントのポート番号。 | | - | `scalar.db.username` | データベースにアクセスするためのユーザー名。 | | - | `scalar.db.password` | データベースにアクセスするためのパスワード。 | | + ##### `storage` + + - **フィールド:** `scalar.db.storage` + - **説明:** `cassandra` を指定する必要があります。 + - **デフォルト値:** - + + ##### `contact_points` + + - **フィールド:** `scalar.db.contact_points` + - **説明:** カンマで区切られた連絡先。 + - **デフォルト値:** + + ##### `contact_port` + + - **フィールド:** `scalar.db.contact_port` + - **説明:** すべての連絡先ポイントのポート番号。 + - **デフォルト値:** + + ##### `username` + + - **フィールド:** `scalar.db.username` + - **説明:** データベースにアクセスするためのユーザー名。 + - **デフォルト値:** + + ##### `password` + + - **フィールド:** `scalar.db.password` + - **説明:** データベースにアクセスするためのパスワード。 + - **デフォルト値:** @@ -168,32 +472,73 @@ ScalarDB は、複数のストレージ実装を同時に使用することを ::: -| 名前 | 説明 | デフォルト | -|----------------------------------------------------|-----------------------------------------------|---------| -| `scalar.db.cross_partition_scan.enabled` | パーティション間スキャンを有効にします。 | `false` | -| `scalar.db.cross_partition_scan.filtering.enabled` | パーティション間スキャンでフィルタリングを有効にします。 | `false` | -| `scalar.db.cross_partition_scan.ordering.enabled` | パーティション間スキャンで順序付けを有効にします。 | `false` | +##### `cross_partition_scan.enabled` + +- **フィールド:** `scalar.db.cross_partition_scan.enabled` +- **説明:** パーティション間スキャンを有効にします。 +- **デフォルト値:** `false` + +##### `cross_partition_scan.filtering.enabled` + +- **フィールド:** `scalar.db.cross_partition_scan.filtering.enabled` +- **説明:** パーティション間スキャンでフィルタリングを有効にします。 +- **デフォルト値:** `false` + +##### `cross_partition_scan.ordering.enabled` + +- **フィールド:** `scalar.db.cross_partition_scan.ordering.enabled` +- **説明:** パーティション間スキャンで順序付けを有効にします。 +- **デフォルト値:** `false` ##### スキャンフェッチサイズ ストレージのスキャン操作でフェッチサイズを次のプロパティで設定できます。 -| 名前 | 説明 | デフォルト | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-----------| -| `scalar.db.scan_fetch_size` | ストレージのスキャン操作時に一度に取得するレコード数を指定します。値を大きくすると、大きな結果セットの場合にストレージへのアクセスの往復回数が減りパフォーマンスが向上しますが、メモリ使用量も増加します。値を小さくするとメモリ使用量は減りますが、レイテンシが増加する場合があります。 | `10` | +##### `scan_fetch_size` + +- **フィールド:** `scalar.db.scan_fetch_size` +- **説明:** ストレージのスキャン操作時に一度に取得するレコード数を指定します。値を大きくすると、大きな結果セットの場合にストレージへのアクセスの往復回数が減りパフォーマンスが向上しますが、メモリ使用量も増加します。値を小さくするとメモリ使用量は減りますが、レイテンシが増加する場合があります。 +- **デフォルト値:** `10` ## ScalarDB Cluster GraphQL の設定 ScalarDB Cluster GraphQL の設定は次のとおりです。 -| 名前 | 説明 | デフォルト | -|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| -| `scalar.db.graphql.enabled` | ScalarDB Cluster GraphQL が有効かどうか。 | `false` | -| `scalar.db.graphql.port` | GraphQL サーバーのポート番号。 | `8080` | -| `scalar.db.graphql.path` | GraphQL エンドポイントの URL のパスコンポーネント。 | `/graphql` | -| `scalar.db.graphql.namespaces` | GraphQL サーバーがスキーマを生成するテーブルの名前空間のコンマ区切りリスト。指定しない場合、GraphQL サーバーは、すべての ScalarDB 管理名前空間内のすべてのテーブルのスキーマを生成します。 | | -| `scalar.db.graphql.graphiql` | GraphQL サーバーが [GraphiQL](https://github.com/graphql/graphiql) IDE を提供するかどうか。 | `true` | -| `scalar.db.graphql.schema_checking_interval_millis` | ScalarDB スキーマに変更が検出された場合に GraphQL サーバーが GraphQL スキーマを再構築する間隔 (ミリ秒単位)。 | `30000` (30秒) | +##### `graphql.enabled` + +- **フィールド:** `scalar.db.graphql.enabled` +- **説明:** ScalarDB Cluster GraphQL が有効かどうか。 +- **デフォルト値:** `false` + +##### `graphql.port` + +- **フィールド:** `scalar.db.graphql.port` +- **説明:** GraphQL サーバーのポート番号。 +- **デフォルト値:** `8080` + +##### `graphql.path` + +- **フィールド:** `scalar.db.graphql.path` +- **説明:** GraphQL エンドポイントの URL のパスコンポーネント。 +- **デフォルト値:** `/graphql` + +##### `graphql.namespaces` + +- **フィールド:** `scalar.db.graphql.namespaces` +- **説明:** GraphQL サーバーがスキーマを生成するテーブルの名前空間のコンマ区切りリスト。指定しない場合、GraphQL サーバーは、すべての ScalarDB 管理名前空間内のすべてのテーブルのスキーマを生成します。 +- **デフォルト値:** + +##### `graphql.graphiql` + +- **フィールド:** `scalar.db.graphql.graphiql` +- **説明:** GraphQL サーバーが [GraphiQL](https://github.com/graphql/graphiql) IDE を提供するかどうか。 +- **デフォルト値:** `true` + +##### `graphql.schema_checking_interval_millis` + +- **フィールド:** `scalar.db.graphql.schema_checking_interval_millis` +- **説明:** ScalarDB スキーマに変更が検出された場合に GraphQL サーバーが GraphQL スキーマを再構築する間隔 (ミリ秒単位)。 +- **デフォルト値:** `30000` (30秒) #### サーバーの実行中に ScalarDB スキーマを作成または変更する @@ -219,24 +564,63 @@ curl -X POST http://localhost:8080/graphql/update-graphql-schema ScalarDB Cluster SQL の設定は次のとおりです。 -| 名前 | 説明 | デフォルト | -|------------------------------------------|----------------------------------------------------------------------------------------------------------|---------------| -| `scalar.db.sql.enabled` | ScalarDB Cluster SQL が有効かどうか。 | `false` | -| `scalar.db.sql.statement_cache.enabled` | ステートメントキャッシュを有効にします。 | `false` | -| `scalar.db.sql.statement_cache.size` | キャッシュされたステートメントの最大数。 | `100` | -| `scalar.db.sql.default_transaction_mode` | デフォルトのトランザクションモード。`TRANSACTION` または `TWO_PHASE_COMMIT_TRANSACTION` を設定できます。 | `TRANSACTION` | -| `scalar.db.sql.default_namespace_name` | デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。 | | +##### `sql.enabled` + +- **フィールド:** `scalar.db.sql.enabled` +- **説明:** ScalarDB Cluster SQL が有効かどうか。 +- **デフォルト値:** `false` + +##### `sql.statement_cache.enabled` + +- **フィールド:** `scalar.db.sql.statement_cache.enabled` +- **説明:** ステートメントキャッシュを有効にします。 +- **デフォルト値:** `false` + +##### `sql.statement_cache.size` + +- **フィールド:** `scalar.db.sql.statement_cache.size` +- **説明:** キャッシュされたステートメントの最大数。 +- **デフォルト値:** `100` + +##### `sql.default_transaction_mode` + +- **フィールド:** `scalar.db.sql.default_transaction_mode` +- **説明:** デフォルトのトランザクションモード。`TRANSACTION` または `TWO_PHASE_COMMIT_TRANSACTION` を設定できます。 +- **デフォルト値:** `TRANSACTION` + +##### `sql.default_namespace_name` + +- **フィールド:** `scalar.db.sql.default_namespace_name` +- **説明:** デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。 +- **デフォルト値:** ## その他の ScalarDB Cluster 設定 ScalarDB Cluster で使用できる追加の設定は次のとおりです。 -| 名前 | 説明 | デフォルト | -|------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| `scalar.db.metadata.cache_expiration_time_secs` | ScalarDB には、データベースへのリクエスト数を減らすためのメタデータキャッシュがあります。この設定では、キャッシュの有効期限を秒単位で指定します。`-1`を指定した場合は、キャッシュは期限切れになりません。 | `60` | -| `scalar.db.active_transaction_management.expiration_time_millis` | ScalarDB は進行中のトランザクションを管理しており、トランザクション ID を使用して再開できます。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のトランザクションを期限切れにします。この設定は、このトランザクション管理機能の有効期限をミリ秒単位で指定します。 | `60000` (60秒) | -| `scalar.db.consensus_commit.include_metadata.enabled` | Consensus Commit を使用している場合に、`true` に設定すると、`Get` および `Scan` 操作の結果にトランザクションメタデータが含まれます。特定のテーブルのトランザクションメタデータ列の詳細を表示するには、`DistributedTransactionAdmin.getTableMetadata()` メソッドを使用します。このメソッドは、トランザクションメタデータ列が追加されたテーブルメタデータを返します。この設定を使用すると、トランザクション関連の問題を調査するのに役立ちます。 | `false` | -| `scalar.db.default_namespace_name` | 指定された名前空間名は、名前空間を指定していない操作によって使用されます。 | | +##### `metadata.cache_expiration_time_secs` + +- **フィールド:** `scalar.db.metadata.cache_expiration_time_secs` +- **説明:** ScalarDB には、データベースへのリクエスト数を減らすためのメタデータキャッシュがあります。この設定では、キャッシュの有効期限を秒単位で指定します。`-1`を指定した場合は、キャッシュは期限切れになりません。 +- **デフォルト値:** `60` + +##### `active_transaction_management.expiration_time_millis` + +- **フィールド:** `scalar.db.active_transaction_management.expiration_time_millis` +- **説明:** ScalarDB は進行中のトランザクションを管理しており、トランザクション ID を使用して再開できます。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のトランザクションを期限切れにします。この設定は、このトランザクション管理機能の有効期限をミリ秒単位で指定します。 +- **デフォルト値:** `60000` (60秒) + +##### `consensus_commit.include_metadata.enabled` + +- **フィールド:** `scalar.db.consensus_commit.include_metadata.enabled` +- **説明:** Consensus Commit を使用している場合に、`true` に設定すると、`Get` および `Scan` 操作の結果にトランザクションメタデータが含まれます。特定のテーブルのトランザクションメタデータ列の詳細を表示するには、`DistributedTransactionAdmin.getTableMetadata()` メソッドを使用します。このメソッドは、トランザクションメタデータ列が追加されたテーブルメタデータを返します。この設定を使用すると、トランザクション関連の問題を調査するのに役立ちます。 +- **デフォルト値:** `false` + +##### `default_namespace_name` + +- **フィールド:** `scalar.db.default_namespace_name` +- **説明:** 指定された名前空間名は、名前空間を指定していない操作によって使用されます。 +- **デフォルト値:** ## クライアント設定 @@ -246,15 +630,47 @@ ScalarDB Cluster で使用できる追加の設定は次のとおりです。 次の表は、ScalarDB Cluster クライアントの一般的な設定を示しています。 -| 名前 | 説明 | デフォルト | -|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------| -| `scalar.db.transaction_manager` | `cluster` を指定する必要があります。 | - | -| `scalar.db.contact_points` | クラスターの接続先。`indirect` クライアントモードを使用する場合は、`indirect:` 形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。`direct-kubernetes` クライアントモードを使用する場合は、`direct-kubernetes:/` または `direct-kubernetes:` 形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前を指定します。名前空間名を指定しない場合、クライアントは `default` 名前空間を使用します。 | | -| `scalar.db.contact_port` | 接続先のポート番号。 | `60053` | -| `scalar.db.cluster.grpc.deadline_duration_millis` | gRPC の期限期間 (ミリ秒単位)。 | `60000` (60秒) | -| `scalar.db.cluster.grpc.max_inbound_message_size` | 単一の gRPC フレームに許可される最大メッセージサイズ。 | gRPC のデフォルト値 | -| `scalar.db.cluster.grpc.max_inbound_metadata_size` | 受信できるメタデータの最大サイズ。 | gRPC のデフォルト値 | -| `scalar.db.cluster.client.scan_fetch_size` | クラスターからデータを取得するために `Scanner` で使用されるフェッチサイズ。これは、`Scanner` がクラスターから一度に取得するレコード数です。値を大きくすると、クラスターへの往復回数が減ってパフォーマンスが向上しますが、メモリ使用量も増加する可能性があります。 | `10` | +##### `transaction_manager` + +- **フィールド:** `scalar.db.transaction_manager` +- **説明:** `cluster` を指定する必要があります。 +- **デフォルト値:** - + +##### `contact_points` + +- **フィールド:** `scalar.db.contact_points` +- **説明:** クラスターの接続先。`indirect` クライアントモードを使用する場合は、`indirect:` 形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。`direct-kubernetes` クライアントモードを使用する場合は、`direct-kubernetes:/` または `direct-kubernetes:` 形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前を指定します。名前空間名を指定しない場合、クライアントは `default` 名前空間を使用します。 +- **デフォルト値:** + +##### `contact_port` + +- **フィールド:** `scalar.db.contact_port` +- **説明:** 接続先のポート番号。 +- **デフォルト値:** `60053` + +##### `cluster.grpc.deadline_duration_millis` + +- **フィールド:** `scalar.db.cluster.grpc.deadline_duration_millis` +- **説明:** gRPC の期限期間 (ミリ秒単位)。 +- **デフォルト値:** `60000` (60秒) + +##### `cluster.grpc.max_inbound_message_size` + +- **フィールド:** `scalar.db.cluster.grpc.max_inbound_message_size` +- **説明:** 単一の gRPC フレームに許可される最大メッセージサイズ。 +- **デフォルト値:** gRPC のデフォルト値 + +##### `cluster.grpc.max_inbound_metadata_size` + +- **フィールド:** `scalar.db.cluster.grpc.max_inbound_metadata_size` +- **説明:** 受信できるメタデータの最大サイズ。 +- **デフォルト値:** gRPC のデフォルト値 + +##### `cluster.client.scan_fetch_size` + +- **フィールド:** `scalar.db.cluster.client.scan_fetch_size` +- **説明:** クラスターからデータを取得するために `Scanner` で使用されるフェッチサイズ。これは、`Scanner` がクラスターから一度に取得するレコード数です。値を大きくすると、クラスターへの往復回数が減ってパフォーマンスが向上しますが、メモリ使用量も増加する可能性があります。 +- **デフォルト値:** `10` たとえば、`indirect` クライアントモードを使用し、ロードバランサーの IP アドレスが `192.168.10.1` の場合、次のようにクライアントを設定できます。 @@ -274,15 +690,47 @@ scalar.db.contact_points=direct-kubernetes:ns/scalardb-cluster 次の表は、ScalarDB Cluster SQL クライアントの設定を示しています。 -| 名前 | 説明 | デフォルト | -|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------| -| `scalar.db.sql.cluster_mode.contact_points` | クラスターの接続先。`indirect` クライアントモードを使用する場合は、`indirect:` 形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。`direct-kubernetes` クライアントモードを使用する場合は、`direct-kubernetes:/` または `direct-kubernetes:` 形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前を指定します。名前空間名を指定しない場合、クライアントは `default` 名前空間を使用します。 | | -| `scalar.db.sql.cluster_mode.contact_port` | 接続先のポート番号。 | `60053` | -| `scalar.db.sql.default_transaction_mode` | デフォルトのトランザクションモード。`TRANSACTION` または `TWO_PHASE_COMMIT_TRANSACTION` を設定できます。 | `TRANSACTION` | -| `scalar.db.sql.default_namespace_name` | デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。 | | -| `scalar.db.cluster.grpc.deadline_duration_millis` | gRPC の期限期間 (ミリ秒単位)。 | `60000` (60秒) | -| `scalar.db.cluster.grpc.max_inbound_message_size` | 単一の gRPC フレームに許可される最大メッセージサイズ。 | gRPC のデフォルト値 | -| `scalar.db.cluster.grpc.max_inbound_metadata_size` | 受信できるメタデータの最大サイズ。 | gRPC のデフォルト値 | +##### `sql.cluster_mode.contact_points` + +- **フィールド:** `scalar.db.sql.cluster_mode.contact_points` +- **説明:** クラスターの接続先。`indirect` クライアントモードを使用する場合は、`indirect:` 形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。`direct-kubernetes` クライアントモードを使用する場合は、`direct-kubernetes:/` または `direct-kubernetes:` 形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と [endpoint resource](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) の名前を指定します。名前空間名を指定しない場合、クライアントは `default` 名前空間を使用します。 +- **デフォルト値:** + +##### `sql.cluster_mode.contact_port` + +- **フィールド:** `scalar.db.sql.cluster_mode.contact_port` +- **説明:** 接続先のポート番号。 +- **デフォルト値:** `60053` + +##### `sql.default_transaction_mode` + +- **フィールド:** `scalar.db.sql.default_transaction_mode` +- **説明:** デフォルトのトランザクションモード。`TRANSACTION` または `TWO_PHASE_COMMIT_TRANSACTION` を設定できます。 +- **デフォルト値:** `TRANSACTION` + +##### `sql.default_namespace_name` + +- **フィールド:** `scalar.db.sql.default_namespace_name` +- **説明:** デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。 +- **デフォルト値:** + +##### `cluster.grpc.deadline_duration_millis` + +- **フィールド:** `scalar.db.cluster.grpc.deadline_duration_millis` +- **説明:** gRPC の期限期間 (ミリ秒単位)。 +- **デフォルト値:** `60000` (60秒) + +##### `cluster.grpc.max_inbound_message_size` + +- **フィールド:** `scalar.db.cluster.grpc.max_inbound_message_size` +- **説明:** 単一の gRPC フレームに許可される最大メッセージサイズ。 +- **デフォルト値:** gRPC のデフォルト値 + +##### `cluster.grpc.max_inbound_metadata_size` + +- **フィールド:** `scalar.db.cluster.grpc.max_inbound_metadata_size` +- **説明:** 受信できるメタデータの最大サイズ。 +- **デフォルト値:** gRPC のデフォルト値 たとえば、`indirect` クライアントモードを使用し、ロードバランサーの IP アドレスが `192.168.10.1` の場合、次のようにクライアントを設定できます。