cassandra.yamlファイル設定
cluster_name
注:このファイルは2つのバージョンで提供されています。- cassandra.yaml:旧バージョンのCassandraを実行しているマシンとの下位互換性と相互運用性のある設定を使用して動作する「互換性のある」設定のデフォルト設定が含まれています。このバージョンは、本番環境で実行されているCassandraの既存ユーザーが新しい機能を段階的かつ慎重に導入したい場合に、容易なアップグレードを促進するために提供されています。- cassandra_latest.yaml:機能強化とパフォーマンス向上を含む、Cassandraの最新機能を有効にするデフォルト設定が含まれています。このバージョンは、クラスターを最大限に活用したい新しいCassandraユーザーや、このテクノロジーを評価しているユーザーのために提供されています。/注
クラスタの名前。これは主に、1つの論理クラスタ内のマシンが別のクラスタに参加するのを防ぐために使用されます。
デフォルト値: 'Test Cluster'
num_tokens
これは、リング上のこのノードにランダムに割り当てられるトークンの数を定義します。他のノードと比較してトークンが多いほど、このノードが保存するデータの割合が大きくなります。ハードウェアの能力が同じであれば、すべてのノードで同じ数のトークンを使用することをお勧めします。
これを指定しない場合、Cassandraはレガシー互換性のためにデフォルトの1トークンを使用し、以下に説明するinitial_tokenを使用します。
initial_tokenを指定すると、ノードの最初の起動時にこの設定が無効になります。それ以降の起動では、initial_tokenが設定されていても、この設定が適用されます。
num_tokensに関するベストプラクティスについては、cassandra.apache.org/doc/latest/getting-started/production.html#tokensを参照してください。
デフォルト値 16
allocate_tokens_for_keyspace
このオプションはデフォルトでコメントアウトされています。
このノードに対してnum_tokensトークンの自動割り当てをトリガーします。割り当てアルゴリズムは、レプリカファクターに対してデータセンター内のノード間でレプリケートされた負荷を最適化するような方法でトークンを選択しようとします。
各ノードに割り当てられる負荷は、その仮想ノードの数にほぼ比例します。
Murmur3Partitionerでのみサポートされています。
レプリカファクターは、指定されたキースペースで使用されるレプリケーションストラテジーによって決定されます。
デフォルト値: KEYSPACE
allocate_tokens_for_local_replication_factor
キースペースまたはデータセンターに関係なく、レプリカファクターが明示的に設定されます。これは、NTSのようなデータセンター内のレプリカファクターです。
デフォルト値 3
initial_token
このオプションはデフォルトでコメントアウトされています。
initial_tokenを使用すると、トークンを手動で指定できます。仮想ノード(num_tokens > 1、上記)で使用できます(その場合はコンマ区切りのリストを提供する必要があります)。ただし、主に仮想ノードが有効になっていないレガシークラスタにノードを追加する場合に使用されます。
hinted_handoff_disabled_datacenters
このオプションはデフォルトでコメントアウトされています。
hinted_handoff_enabled が true の場合、ヒントハンドオフを実行しないデータセンターのブラックリスト
デフォルト値(複雑なオプション):
# - DC1 # - DC2
max_hint_window
これは、ダウンしたホストに対してヒントが生成される最大時間を定義します。この時間が経過すると、そのホストに対して新しいヒントは、そのホストが生存状態になり、再びダウンするまで作成されません。最小単位:ms
デフォルト値: 3h
hinted_handoff_throttle
デリバリースレッドあたりの最大スロットル(KiB/秒)。これは、クラスタ内のノードの数に比例して削減されます。(クラスタに2つのノードがある場合、各デリバリースレッドは最大レートを使用します。3つのノードがある場合、2つのノードが同時にヒントを配信すると予想されるため、それぞれ最大レートの半分にスロットルされます。)最小単位:KiB
デフォルト値: 1024KiB
max_hints_delivery_threads
ヒントを配信するためのスレッド数。マルチDC展開の場合、この数を増やすことを検討してください。クロスDCハンドオフは遅くなる傾向があるためです。
デフォルト値 2
hints_directory
このオプションはデフォルトでコメントアウトされています。
Cassandraがヒントを保存するディレクトリ。設定されていない場合、デフォルトのディレクトリは$CASSANDRA_HOME/data/hintsです。
デフォルト値: /var/lib/cassandra/hints
max_hints_size_per_host
このオプションはデフォルトでコメントアウトされています。
到達不能なホストのヒントを保存するためのファイルサイズの制限(MiB)。ローカルヒントファイルがこの制限に達すると、新しいヒントは作成されなくなります。非正の値を設定すると、サイズの制限が無効になります。
デフォルト値: 0MiB
auto_hints_cleanup_enabled
期限切れのヒントファイルと孤児になったヒントファイルの自動クリーンアップを有効/無効にします。ディスク上のこれらのヒントを保持するには、このオプションを無効にします。
デフォルト値: false
transfer_hints_on_decommission
このオプションはデフォルトでコメントアウトされています。
廃止時にピアにヒントを転送するかどうかを有効/無効にします。有効にしても、ログされたバッチの一貫性が保証されるわけではなく、厳格なhinted_handoff_throttleと組み合わせると、廃止が遅れる可能性があります。デフォルト:true
デフォルト値: true
hints_compression
このオプションはデフォルトでコメントアウトされています。
ヒントファイルに適用する圧縮。省略した場合は、ヒントファイルは圧縮されずに書き込まれます。LZ4、Snappy、Deflate圧縮がサポートされています。
デフォルト値(複雑なオプション):
# - class_name: LZ4Compressor # parameters: # -
heap_dump_path
**このオプションはデフォルトでコメントアウトされています。** Cassandraがキャッチされない例外のワンショットトラブルシューティングヒープダンプの結果を保存するディレクトリ。注:この値は、必要に応じてテストのために相対的なローカルパスで -XX:HeapDumpPath JVM 環境パラメーターで上書きできます。設定されていない場合、デフォルトのディレクトリは$CASSANDRA_HOME/heapdumpです。
デフォルト値: /var/lib/cassandra/heapdump
dump_heap_on_uncaught_exception
このオプションはデフォルトでコメントアウトされています。
最初のキャッチされない例外時にヒープの自動ダンプを有効/無効にします。設定されていない場合、デフォルト値はfalseです。
デフォルト値: true
hint_window_persistent_enabled
このオプションはデフォルトでコメントアウトされています。
永続的なヒントウィンドウを有効/無効にします。
falseに設定されている場合、ヒントは、対応するノードがmax_hint_window以下の時間ダウンしている場合にのみ保存されます。
trueに設定されている場合、max_hint_windowよりも前に保存されたヒントがない場合、ヒントが保存されます。これは、ノードが再起動を続け、ヒントがまだ配信されていない場合に、そのノードのヒントを無期限に保存するためです。
デフォルトはtrueです。
デフォルト値: true
authenticator
IAuthenticatorを実装する認証バックエンド。ユーザーを識別するために使用されます。すぐに使用できるものとして、Cassandraはorg.apache.cassandra.auth.{AllowAllAuthenticator, PasswordAuthenticator}を提供します。
-
AllowAllAuthenticatorはチェックを実行しません - 認証を無効にするために設定します。
-
PasswordAuthenticatorは、ユーザーを認証するためにユーザー名/パスワードペアに依存します。ユーザー名とハッシュされたパスワードはsystem_auth.rolesテーブルに保持されます。この認証子を使用する場合は、system_authキースペースのレプリケーションファクターを増やす必要があります。PasswordAuthenticatorを使用する場合は、CassandraRoleManagerも使用する必要があります(下記参照)。
authorizer
MutualTlsAuthenticator は以下の設定を使用して構成できます。`MutualTlsCertificateValidator` クラスを実装し、証明書からIDを抽出し、証明書を検証するためのロジックを提供する独自のバリデーターを追加できます。`class_name : org.apache.cassandra.auth.MutualTlsAuthenticator parameters : validator_class_name: org.apache.cassandra.auth.SpiffeCertificateValidator`
認証バックエンド。`IAuthorizer` を実装し、アクセス制限/権限付与に使用されます。Cassandraは、`org.apache.cassandra.auth.{AllowAllAuthorizer, CassandraAuthorizer}` を標準で提供しています。
-
AllowAllAuthorizer は、すべてのユーザーにすべての操作を許可します - 認証を無効にするために設定します。
-
CassandraAuthorizer は、権限を `system_auth.role_permissions` テーブルに保存します。このオーサライザーを使用する場合は、`system_auth` キースペースのレプリケーションファクターを増やす必要があります。
デフォルト値: AllowAllAuthorizer
role_manager
認証と承認バックエンドの一部。`IRoleManager` を実装し、ロール間の権限とメンバーシップを管理するために使用されます。Cassandraは、ロール情報を `system_auth` キースペースに保存する `org.apache.cassandra.auth.CassandraRoleManager` を標準で提供しています。`IRoleManager` のほとんどの機能には認証済みログインが必要となるため、設定された `IAuthenticator` が実際に認証を実装していない限り、これらの機能のほとんどは使用できません。
-
CassandraRoleManager は、ロールデータを `system_auth` キースペースに保存します。このロールマネージャーを使用する場合は、`system_auth` キースペースのレプリケーションファクターを増やす必要があります。
デフォルト値: CassandraRoleManager
network_authorizer
ネットワーク承認バックエンド。`INetworkAuthorizer` を実装し、ユーザーによる特定のデータセンターへのアクセスを制限するために使用されます。Cassandraは、`org.apache.cassandra.auth.{AllowAllNetworkAuthorizer, CassandraNetworkAuthorizer}` を標準で提供しています。
-
AllowAllNetworkAuthorizer は、すべてのユーザーにすべてのデータセンターへのアクセスを許可します - 承認を無効にするために設定します。
-
CassandraNetworkAuthorizer は、権限を `system_auth.network_permissions` テーブルに保存します。このオーサライザーを使用する場合は、`system_auth` キースペースのレプリケーションファクターを増やす必要があります。
デフォルト値: AllowAllNetworkAuthorizer
cidr_authorizer
CIDR 承認バックエンド。`ICIDRAuthorizer` を実装し、特定の CIDR からのユーザーアクセスを制限するために使用されます。Cassandraは、`org.apache.cassandra.auth.{AllowAllCIDRAuthorizer, CassandraCIDRAuthorizer}` を標準で提供しています。- AllowAllCIDRAuthorizer は、すべてのユーザーにすべての CIDR からのアクセスを許可します - CIDR 承認を無効にするために設定します。- CassandraCIDRAuthorizer は、ユーザーの CIDR 権限を `system_auth.cidr_permissions` テーブルに保存します。このオーサライザーを使用する場合は、`system_auth` キースペースのレプリケーションファクターを増やす必要があります。そうしないと、この機能で使用されている `system_auth` テーブルに対する変更が、ホストがダウンしたときに失われる可能性があります。
traverse_auth_from_root
このオプションはデフォルトでコメントアウトされています。
クラスタの認証戦略によっては、テーブルからルートへの検索 (table → ks → root) ではなく、ルートからテーブルへの検索 (root → ks → table) を行う方が効率的です。認証エントリはホワイトリストであるため、権限が見つかれば有効であることがわかります。レガシーの動作はテーブルレベルでクエリを実行してからルートまで戻るため、デフォルトは false です。詳細は CASSANDRA-17016 を参照してください。
デフォルト値: false
roles_validity
ロールキャッシュの有効期間 (付与されたロールの取得は、ロールマネージャーによっては高コストな操作になる可能性があります。CassandraRoleManager がその一例です)。付与されたロールは、`AuthenticatedUser` で認証済みセッションに対してキャッシュされ、ここで指定された期間が経過すると、(非同期) リロードの対象となります。デフォルトは 2000 で、0 に設定するとキャッシングを完全に無効にします。AllowAllAuthenticator の場合、自動的に無効になります。`roles_cache_active_update` を使用した長期間実行されるキャッシュの場合、日次検証など、より長い期間 (例: 86400000) に設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
roles_update_interval
このオプションはデフォルトでコメントアウトされています。
ロールキャッシュのリフレッシュ間隔 (有効になっている場合)。この間隔の後、キャッシュエントリはリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。`roles_validity` が 0 以外の場合、これも 0 以外にする必要があります。この設定は、`roles_cache_active_update` を使用している場合の自動更新の間隔を知らせるためにも使用されます。デフォルトは `roles_validity` と同じ値です。長期間実行されるキャッシュの場合、これを 60000 (1時間) などに設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
roles_cache_active_update
このオプションはデフォルトでコメントアウトされています。
true の場合、キャッシュの内容は、`roles_update_interval` で設定された間隔でバックグラウンドタスクによって積極的に更新されます。false の場合、キャッシュエントリは更新間隔が経過するとリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。
デフォルト値: false
permissions_validity
権限キャッシュの有効期間 (権限の取得は、オーサライザーによっては高コストな操作になる可能性があります。CassandraAuthorizer がその一例です)。デフォルトは 2000 で、0 に設定すると無効になります。AllowAllAuthorizer の場合、自動的に無効になります。`permissions_cache_active_update` を使用した長期間実行されるキャッシュの場合、日次検証など、より長い期間 (例: 86400000ms) に設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
permissions_update_interval
このオプションはデフォルトでコメントアウトされています。
権限キャッシュのリフレッシュ間隔 (有効になっている場合)。この間隔の後、キャッシュエントリはリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。`permissions_validity` が 0 以外の場合、これも 0 以外にする必要があります。この設定は、`permissions_cache_active_update` を使用している場合の自動更新の間隔を知らせるためにも使用されます。デフォルトは `permissions_validity` と同じ値です。長期間実行される権限キャッシュの場合、時間単位 (60000) で更新するように設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
permissions_cache_active_update
このオプションはデフォルトでコメントアウトされています。
true の場合、キャッシュの内容は、`permissions_update_interval` で設定された間隔でバックグラウンドタスクによって積極的に更新されます。false の場合、キャッシュエントリは更新間隔が経過するとリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。
デフォルト値: false
credentials_validity
クレデンシャルキャッシュの有効期間。このキャッシュは、`IAuthenticator` の `PasswordAuthenticator` 実装と密接に関連付けられています。別の `IAuthenticator` 実装が設定されている場合、このキャッシュは自動的に使用されず、したがって以下の設定は無効になります。クレデンシャルは暗号化された形式でキャッシュされることに注意してください。そのため、このキャッシュを有効にすると基礎となるテーブルへのクエリ数が減少する可能性がありますが、個々の認証試行のレイテンシが大幅に減少するとは限りません。デフォルトは 2000 で、0 に設定するとクレデンシャルキャッシングを無効にします。`credentials_cache_active_update` を使用した長期間実行されるキャッシュの場合、日次検証など、より長い期間 (例: 86400000) に設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
credentials_update_interval
このオプションはデフォルトでコメントアウトされています。
クレデンシャルキャッシュのリフレッシュ間隔 (有効になっている場合)。この間隔の後、キャッシュエントリはリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。`credentials_validity` が 0 以外の場合、これも 0 以外にする必要があります。この設定は、`credentials_cache_active_update` を使用している場合の自動更新の間隔を知らせるためにも使用されます。デフォルトは `credentials_validity` と同じ値です。長期間実行される権限キャッシュの場合、時間単位 (60000) で更新するように設定することを検討してください。最小単位: ms
デフォルト値: 2000ms
credentials_cache_active_update
このオプションはデフォルトでコメントアウトされています。
true の場合、キャッシュの内容は、`credentials_update_interval` で設定された間隔でバックグラウンドタスクによって積極的に更新されます。false (デフォルト) の場合、キャッシュエントリは更新間隔が経過するとリフレッシュの対象となります。次にアクセスすると、非同期リロードがスケジュールされ、完了するまで古い値が返されます。
デフォルト値: false
partitioner
パーティショナーは、クラスタ内のノード間で行のグループ (パーティションキーによる) を分散する役割を担います。すべてのデータを再ロードせずにパーティショナーを変更することはできません。ノードを追加する場合やアップグレードする場合は、現在使用しているパーティショナーと同じパーティショナーに設定する必要があります。
デフォルトのパーティショナーは Murmur3Partitioner です。RandomPartitioner、ByteOrderedPartitioner、OrderPreservingPartitioner などの古いパーティショナーは、下位互換性のためにのみ含まれています。新しいクラスタでは、この値を変更しないでください。
デフォルト値: org.apache.cassandra.dht.Murmur3Partitioner
data_file_directories
このオプションはデフォルトでコメントアウトされています。
Cassandra がディスク上にデータを保存するディレクトリ。複数のディレクトリを指定すると、Cassandra はトークン範囲をパーティション分割することで、データをそれらのディレクトリに均等に分散します。設定されていない場合、デフォルトのディレクトリは `$CASSANDRA_HOME/data/data` です。
デフォルト値(複雑なオプション):
# - /var/lib/cassandra/data
local_system_data_file_directory
このオプションはデフォルトでコメントアウトされています。Cassandra がローカルシステムキースペースのデータを保存するディレクトリ。デフォルトでは、Cassandra は `data_file_directories` で指定された最初のデータディレクトリにローカルシステムキースペースのデータを保存します。このアプローチにより、他のディスクの1つが失われた場合でも、Cassandra は動作を継続できます。追加のセキュリティのために、この設定により、冗長性を提供する別のディレクトリにこれらのデータを保存できます。
commitlog_directory
このオプションはデフォルトでコメントアウトされています。
コミットログ。磁気HDDで実行している場合は、データディレクトリとは別のスピンドルにする必要があります。設定されていない場合、デフォルトのディレクトリは `$CASSANDRA_HOME/data/commitlog` です。
デフォルト値: /var/lib/cassandra/commitlog
cdc_enabled
ノードごとに CDC 機能を有効/無効にします。これにより、書き込みパス割り当て拒否に使用されるロジックが変更されます (標準: 拒否しない。cdc: `cdc_raw_directory` の空き容量が不足している場合、CDC が有効になっているテーブルを含む `Mutation` を拒否します)。
デフォルト値: false
cdc_block_writes
このオプションはデフォルトでコメントアウトされています。
ディスク上の CDC データが制限に達した場合に、CDC が有効になっているテーブルへの書き込みをブロックするかどうかを指定します。false に設定すると、書き込みはブロックされず、サイズ制約を満たすためにディスク上の最も古い CDC データが削除されます。デフォルトは true です。
デフォルト値: true
cdc_on_repair_enabled
このオプションはデフォルトでコメントアウトされています。
ストリーミング (例: repair) で CDC 変更が書き込みパスを介して再生されるかどうかを指定します。有効にすると、宛先ノードにストリーミングされた CDC データは最初にコミットログに書き込まれます。false に設定すると、ストリーミングされた CDC データは通常のストリーミングと同様に SSTable に書き込まれます。デフォルトは true です。false に設定すると、ストリーミングは大幅に高速になりますが、極端な状況 (レプリカセットでクォーラムを超える数のノードの損失) では、CDC ログに到達しないデータが SSTable に存在する可能性があります。
デフォルト値: true
cdc_raw_directory
このオプションはデフォルトでコメントアウトされています。
`cdc_enabled: true` であり、セグメントに CDC が有効になっているテーブルの変更が含まれている場合、CommitLogSegments はフラッシュ時にこのディレクトリに移動されます。これは、データディレクトリとは別のスピンドルに配置する必要があります。設定されていない場合、デフォルトのディレクトリは `$CASSANDRA_HOME/data/cdc_raw` です。
デフォルト値: /var/lib/cassandra/cdc_raw
disk_access_mode
このオプションはデフォルトでコメントアウトされています。
ディスクアクセスポリシー
auto 64ビットJVMでデータファイルとインデックスファイルの両方にmmapを有効にします。
standard mmapを完全に無効にします。
mmap インデックスファイルとデータファイルをマップします。アクティブに読み取られているすべてのSSTableがRAMに収まらない場合、mmapは過剰なページングを引き起こす可能性があります。
mmap_index_only mmapに似ていますが、インデックスファイルのみをマップします。この設定を使用すると、ページフォルトまたはスティールの数が多く、レイテンシが増加している場合にも役立つことがあります。この設定はデフォルトです。
デフォルト値: mmap_index_only
disk_failure_policy
データディスク障害に対するポリシー
die ファイルシステムエラーまたは単一SSTableエラーが発生した場合、ゴシップとクライアントトランスポートをシャットダウンし、JVMを強制終了します。これにより、ノードを交換できます。
stop_paranoid 単一SSTableエラーに対してもゴシップとクライアントトランスポートをシャットダウンし、起動時のエラーに対してJVMを強制終了します。
stop ゴシップとクライアントトランスポートをシャットダウンし、ノードを事実上停止状態にします。ただし、JMXを介して検査することはできます。起動時のエラーに対してJVMを強制終了します。
best_effort 障害が発生したディスクの使用を停止し、残りの使用可能なSSTableに基づいて要求に応答します。これは、CL.ONEで古いデータが表示されることを意味します!
ignore 致命的なエラーを無視し、1.2より前のCassandraのように要求を失敗させます。
デフォルト値: stop
commit_failure_policy
コミットディスク障害に対するポリシー
die ノードをシャットダウンし、JVMをキルします。これにより、ノードを交換できます。
stop ノードをシャットダウンします。ノードは事実上停止しますが、JMXを介して検査できます。
stop_commit コミットログをシャットダウンします。書き込みは蓄積されますが、2.0.5以前のCassandraと同様に読み込みサービスは継続されます。
ignore 致命的なエラーを無視し、バッチの失敗を許容します。
デフォルト値: stop
prepared_statements_cache_size
ネイティブプロトコルプリペアードステートメントキャッシュの最大サイズ
有効な値は、「auto」(値を省略)または0より大きい値です。
値を大きくしすぎると、長時間実行されるGCが発生し、メモリ不足エラーが発生する可能性があります。ヒープのごく一部の値に設定してください。
「キャッシュの上限に達したため、過去1分間に破棄されたプリペアードステートメント」というメッセージが頻繁に表示される場合は、まずこれらのメッセージの根本原因を調査し、プリペアードステートメントが正しく使用されているかどうか(つまり、変数部分にバインドマーカーを使用しているかどうか)を確認してください。
キャッシュに収まらないプリペアードステートメントが実際に増えた場合にのみ、デフォルト値を変更してください。ほとんどの場合、この値を変更する必要はありません。ステートメントを繰り返し準備することは、パフォーマンスの低下につながります。
デフォルト値(「auto」)はヒープの1/256または10MiBのうち大きい方です。最小単位: MiB
key_cache_size
メモリ内のキーキャッシュの最大サイズ。
キーキャッシュヒットごとに少なくとも1回のシークが、行キャッシュヒットごとに少なくとも2回のシークが節約されます(場合によってはそれ以上)。キーキャッシュは、節約される時間に対してかなり小さいので、大量に使用しても問題ありません。行キャッシュはさらに多くの時間を節約しますが、行全体を含んでいる必要があるため、非常に多くのスペースを消費します。ホットな行または静的な行がある場合にのみ、行キャッシュを使用することをお勧めします。
サイズを小さくすると、起動時に最もホットなキーが読み込まれない可能性があります。 |
デフォルト値は空で、「auto」(ヒープの5%(MiB単位)または100MiBのうち小さい方)になります。キーキャッシュを無効にするには0に設定します。
これは、キーキャッシュを使用するSSTable形式(例:BIG)にのみ関連します。最小単位: MiB
key_cache_save_period
Cassandraがキーキャッシュを保存するまでの時間(秒単位)。キャッシュは、この設定ファイルで指定されたsaved_caches_directoryに保存されます。
保存されたキャッシュはコールドスタート速度を大幅に向上させ、キーキャッシュのI/Oの観点からは比較的安価です。行キャッシュの保存ははるかに高価であり、用途は限られています。
これは、キーキャッシュを使用するSSTable形式(例:BIG)にのみ関連します。デフォルトは14400または4時間です。最小単位: s
デフォルト値: 4h
key_cache_keys_to_save
このオプションはデフォルトでコメントアウトされています。
保存するキーキャッシュからのキーの数。デフォルトでは無効になっており、すべてのキーが保存されます。これは、キーキャッシュを使用するSSTable形式(例:BIG)にのみ関連します。
デフォルト値 100
row_cache_class_name
このオプションはデフォルトでコメントアウトされています。
行キャッシュの実装クラス名。利用可能な実装
org.apache.cassandra.cache.OHCProvider 完全オフヒープ行キャッシュ実装(デフォルト)。
org.apache.cassandra.cache.SerializingCacheProvider これは、以前のバージョンのCassandraで使用可能な行キャッシュ実装です。
デフォルト値: org.apache.cassandra.cache.OHCProvider
row_cache_size
メモリ内の行キャッシュの最大サイズ。OHCキャッシュ実装では、マップ構造の管理と、キャッシュエントリがキャッシュ容量に対して計上される前後の操作中のいくつかのインフライトメモリに、追加のオフヒープメモリが必要です。このオーバーヘッドは通常、全体の容量に比べて小さいです。システムが最悪の通常状況で処理できる以上のメモリを指定せず、OSブロックレベルキャッシュに余裕を持たせてください。システムがスワップすることは絶対に許可しないでください。
行キャッシングを無効にするため、デフォルト値は0です。最小単位: MiB
デフォルト値: 0MiB
row_cache_save_period
Cassandraが行キャッシュを保存するまでの時間(秒単位)。キャッシュは、この設定ファイルで指定されたsaved_caches_directoryに保存されます。
保存されたキャッシュはコールドスタート速度を大幅に向上させ、キーキャッシュのI/Oの観点からは比較的安価です。行キャッシュの保存ははるかに高価であり、用途は限られています。
行キャッシュの保存を無効にするため、デフォルトは0です。最小単位: s
デフォルト値: 0s
row_cache_keys_to_save
このオプションはデフォルトでコメントアウトされています。
行キャッシュから保存するキーの数。0を指定すると(デフォルト)、すべてのキーが保存されます。
デフォルト値 100
counter_cache_size
メモリ内のカウンタキャッシュの最大サイズ。
カウンタキャッシュは、ホットなカウンタセルのカウンタロックの競合を軽減するのに役立ちます。RF = 1の場合、カウンタキャッシュヒットにより、Cassandraは書き込み前の読み取りを完全にスキップします。RF > 1の場合、カウンタキャッシュヒットはロック保持時間を短縮するのに役立ちますが、読み取りを完全にスキップすることはできません。カウンタセル全体ではなく、カウンタセルのローカル(クロック、カウント)タプルのみがメモリに保持されるため、比較的安価です。
サイズを小さくすると、起動時に最もホットなキーが読み込まれない可能性があります。 |
デフォルト値は空で、「auto」(ヒープの2.5%(MiB単位)または50MiBのうち小さい方)になります。カウンタキャッシュを無効にするには0に設定します。注:カウンタの削除を実行し、低いGCに依存する場合は、カウンタキャッシュを無効にする必要があります。最小単位: MiB
counter_cache_save_period
Cassandraがカウンタキャッシュ(キーのみ)を保存するまでの時間(秒単位)。キャッシュは、この設定ファイルで指定されたsaved_caches_directoryに保存されます。
デフォルトは7200または2時間です。最小単位: s
デフォルト値: 7200s
counter_cache_keys_to_save
このオプションはデフォルトでコメントアウトされています。
保存するカウンタキャッシュからのキーの数。デフォルトでは無効になっており、すべてのキーが保存されます。
デフォルト値 100
saved_caches_directory
このオプションはデフォルトでコメントアウトされています。
保存されたキャッシュ。設定されていない場合、デフォルトのディレクトリは$CASSANDRA_HOME/data/saved_cachesです。
デフォルト値: /var/lib/cassandra/saved_caches
cache_load_timeout
このオプションはデフォルトでコメントアウトされています。
Cassandraプロセスの起動時に、各キャッシュ(行、キーなど)の読み込みをサーバーが待機する時間(秒単位)。これを0に設定すると、実行時のキャッシュは維持されますが、起動時のキャッシュの読み込みはすべて無効になります。最小単位: s
デフォルト値: 30s
commitlog_sync_group_window
このオプションはデフォルトでコメントアウトされています。
commitlog_syncは、「periodic」、「group」、または「batch」のいずれかになります。
バッチモードの場合、コミットログがディスクにフラッシュされるまで、Cassandraは書き込みをACKしません。受信した各書き込みによってフラッシュタスクがトリガーされます。
グループモードはバッチモードに似ており、コミットログがディスクにフラッシュされるまで、Cassandraは書き込みをACKしません。違いは、グループモードではフラッシュ間で最大commitlog_sync_group_window待機することです。
最小単位: ms
デフォルト値: 1000ms
commitlog_sync
デフォルトオプションは「periodic」です。このオプションでは、書き込みはすぐにACKされる可能性があり、CommitLogはcommitlog_sync_periodミリ秒ごとに同期されるだけです。
デフォルト値: periodic
periodic_commitlog_sync_lag_block
このオプションはデフォルトでコメントアウトされています。
周期的なコミットログモードの場合、遅いディスクフラッシュの完了を待機している間に書き込みをブロックする時間(ミリ秒単位)。最小単位: ms
commitlog_segment_size
個々のコミットログファイルセグメントのサイズ。システム内の各列ファミリからのデータ(潜在的に)がSSTableにフラッシュされると、コミットログセグメントはアーカイブ、削除、または再利用できます。
デフォルトサイズは32で、ほとんどの場合問題ありませんが、コミットログセグメントをアーカイブしている場合(commitlog_archiving.propertiesを参照)、より細かい粒度のアーカイブが必要になる可能性があります。8MBまたは16MBは妥当です。最大変更サイズも、cassandra.yamlのmax_mutation_size設定で設定できます。デフォルトはcommitlog_segment_sizeのバイト数の半分です。これは正の値で、2048未満である必要があります。
max_mutation_sizeを明示的に設定する場合は、commitlog_segment_sizeをmax_mutation_sizeの少なくとも2倍のサイズに設定する必要があります。 |
最小単位: MiB
デフォルト値: 32MiB
commitlog_compression
このオプションはデフォルトでコメントアウトされています。
コミットログに適用する圧縮。省略した場合、コミットログは圧縮されずに書き込まれます。LZ4、Snappy、Deflate圧縮がサポートされています。
デフォルト値(複雑なオプション):
# - class_name: LZ4Compressor # parameters: # -
commitlog_disk_access_mode
コミットログセグメントの書き込みに対するディスクアクセスモードを設定します。許可される値は次のとおりです。- auto:バージョン依存の最適な設定 - legacy:Cassandra 4.x以前で使用されていたデフォルトモード(コミットログが圧縮または暗号化されている場合、標準I/O、そうでない場合はmmap) - mmap:メモリマップドI/Oを使用 - コミットログが圧縮または暗号化されていない場合にのみ使用可能 - direct:ダイレクトI/Oを使用 - コミットログが圧縮または暗号化されていない場合にのみ使用可能 - standard:標準I/Oを使用 - コミットログが圧縮または暗号化されている場合にのみ使用可能 ストレージ互換性が4に設定されている場合はデフォルト設定はlegacy、それ以外の場合はautoです。
デフォルト値: legacy
table
このオプションはデフォルトでコメントアウトされています。
圧縮されたテーブルのフラッシュ時にSSTableに適用する圧縮。圧縮が有効になっていないテーブルは、このフラグを尊重しません。
LZ4HC、Zstd、Deflateなどの高圧縮率の圧縮は、フラッシュを長時間ブロックする可能性があるため、デフォルトでは、そのような場合に既知の高速圧縮を使用してフラッシュします。オプションは次のとおりです。
none:ブロックを圧縮せずにフラッシュしますが、チェックサムは実行します。fast:高速圧縮を使用してフラッシュします。テーブルが既に高速圧縮を使用している場合は、その圧縮が使用されます。
デフォルト値: 常にテーブルで使用されているのと同じ圧縮を使用してフラッシュします。これは
seed_provider
SeedProviderインターフェースを実装し、パラメーターのMap<String, String>を受け取るコンストラクターを持つクラスであれば、何でも使用できます。
デフォルト値(複雑なオプション):
# Addresses of hosts that are deemed contact points. # Cassandra nodes use this list of hosts to find each other and learn # the topology of the ring. You must change this if you are running # multiple nodes! - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: # seeds is actually a comma-delimited list of addresses. # Ex: "<ip1>,<ip2>,<ip3>" - seeds: "127.0.0.1:7000" # If set to "true", SimpleSeedProvider will return all IP addresses for a DNS name, # based on the configured name service on the system. Defaults to "false". # resolve_multiple_ip_addresses_per_dns_record: "false"
concurrent_reads
メモリに収まらないデータ量のワークロードの場合、Cassandraのボトルネックは、ディスクからデータを取得する必要がある読み取りになります。「concurrent_reads」は(16 * ドライブ数)に設定する必要があります。これにより、OSとドライブが操作を並べ替えることができるほど低いスタックに操作をエンキューできます。「concurrent_counter_writes」にも同じことが適用されます。カウンタの書き込みは、インクリメントして書き戻す前に現在の値を読み取ります。
一方、書き込みはほとんどの場合IOバウンドではないため、「concurrent_writes」の理想的な数は、システムのコア数によって異なります。(8 * コア数)は良い経験則です。
デフォルト値 32
concurrent_materialized_view_writes
マテリアライズドビューへの書き込みでは、読み込みが含まれるため、同時読み込みと同時書き込みの少ない方に制限される必要があります。
デフォルト値 32
networking_cache_size
このオプションはデフォルトでコメントアウトされています。
ノード間およびクライアントサーバー間のネットワークバッファに使用する最大メモリ。
ヒープの1/16または128MBのうち小さい方の値がデフォルトです。このプールはヒープ外に割り当てられるため、ヒープに割り当てられたメモリに追加されます。このキャッシュには、チャンクあたり約128バイトのヒープ上のオーバーヘッドもあります(つまり、デフォルトの64kチャンクサイズを使用する場合、予約サイズの0.2%)。メモリは必要に応じてのみ割り当てられます。最小単位:MiB
デフォルト値: 128MiB
file_cache_enabled
このオプションはデフォルトでコメントアウトされています。
SSTableチャンクキャッシュを有効にします。チャンクキャッシュは、最近アクセスされたSSTableのセクションを非圧縮バッファとしてメモリ内に格納します。
デフォルト値: false
file_cache_size
このオプションはデフォルトでコメントアウトされています。
SSTableチャンクキャッシュとバッファプーリングに使用する最大メモリ。このうち32MBはバッファプーリング用に予約され、残りは非圧縮SSTableチャンクを保持するチャンクキャッシュに使用されます。ヒープの1/4または512MBのうち小さい方の値がデフォルトです。このプールはヒープ外に割り当てられるため、ヒープに割り当てられたメモリに追加されます。このキャッシュには、チャンクあたり約128バイトのヒープ上のオーバーヘッドもあります(つまり、デフォルトの64kチャンクサイズを使用する場合、予約サイズの0.2%)。メモリは必要に応じてのみ割り当てられます。最小単位:MiB
デフォルト値: 512MiB
buffer_pool_use_heap_if_exhausted
このオプションはデフォルトでコメントアウトされています。
SSTableバッファプールが使い果たされた場合、つまり、最大メモリfile_cache_size
を超えた場合に、ヒープ上またはヒープ外にメモリを割り当てるかどうかを示すフラグです。それを超えると、バッファはキャッシュされなくなり、要求時に割り当てられます。
デフォルト値: true
disk_optimization_strategy
このオプションはデフォルトでコメントアウトされています。
ディスク読み込みを最適化するための戦略。可能な値は:ssd(ソリッドステートディスク、デフォルト)、spinning(回転ディスク)
デフォルト値: ssd
memtable
サポートされているmemtableの実装と選択されたデフォルト。現在、Cassandraは2つのmemtable実装を提供しています: - SkipListMemtableは、以前のバージョンのCassandraによって提供されていたレガシーなmemtable実装です。 - TrieMemtableは、トライデータ構造を利用する新しいmemtableです。この実装により、より多くのSSTableメタデータをヒープ外に移動することでガベージコレクションの負荷を大幅に削減し、同じ割り当てでより多くのデータを格納でき、より高い書き込みスループットを確実に処理できます。トライmemtableはシャーディングされたシングルライターソリューションであるため、負荷が非常に不均一に分散されている場合(たとえば、ほとんどの書き込みが非常に少数のパーティションにアクセスする場合、またはレガシーなセカンダリインデックスを使用する場合)は、パフォーマンスが低下する可能性があります。memtableの実装は、テーブル定義でmemtableプロパティを以下に指定された構成のいずれかに設定することで、テーブルごとに選択できます。memtableプロパティが設定されていない場合、「default」構成が使用されます。詳細については、src/java/org/apache/cassandra/db/memtable/Memtable_API.mdを参照してください。
memtable_heap_space
このオプションはデフォルトでコメントアウトされています。
memtableに使用できる合計メモリ。Cassandraは、制限を超えると、フラッシュが完了するまで書き込みを停止し、memtable_cleanup_threshold
に基づいてフラッシュをトリガーします。省略した場合、Cassandraは両方ともヒープサイズの1/4に設定します。最小単位:MiB
デフォルト値: 2048MiB
memtable_cleanup_threshold
このオプションはデフォルトでコメントアウトされています。
memtable_cleanup_threshold
は非推奨です。デフォルトの計算が唯一の妥当な選択肢です。詳細については、memtable_flush_writers
のコメントを参照してください。
占有されている非フラッシュmemtableサイズと許可されている合計サイズとの比率で、最大のmemtableのフラッシュをトリガーします。mctを大きくすると、フラッシュが大きくなり、コンパクションが少なくなり、同時フラッシュアクティビティも少なくなり、書き込み負荷が高い状況でディスクへのデータ供給を維持することが難しくなります。
memtable_cleanup_threshold
は、1 / (memtable_flush_writers
+ 1)がデフォルトです。
デフォルト値 0.11
memtable_allocation_type
Cassandraがmemtableメモリを割り当てて管理する方法を指定します。オプションは次のとおりです。
heap_buffers
ヒープ上のNIOバッファ
offheap_buffers
ヒープ外の(直接)NIOバッファ
offheap_objects
ヒープ外のオブジェクト
デフォルト値: heap_buffers
repair_session_space
このオプションはデフォルトでコメントアウトされています。
特定のテーブルと共通のトークン範囲の修復中のMerkleツリー計算のメモリ使用量を制限します。複数のテーブルまたは仮想ノードを対象とする修復コマンドは、concurrent_merkle_tree_requests
に応じてこの制限を超える可能性があります。
デフォルトは、使用可能なヒープの1/16です。主なトレードオフは、ツリーが小さいほど解像度が低くなり、データの過剰ストリーミングにつながる可能性があることです。修復中にヒープの圧力が観察される場合は、この値を下げることを検討してください。ただし、1MiBを下回ることができません。過剰ストリーミングが多く発生する場合は、この値を上げるか、サブレンジ修復を使用することを検討してください。
詳細については、issues.apache.org/jira/browse/CASSANDRA-14096を参照してください。
最小単位: MiB
concurrent_merkle_tree_requests
このオプションはデフォルトでコメントアウトされています。
修復コマンドによって実行できる同時Merkleツリー要求の数。各検証要求のサイズはrepair_session_space
プロパティによって制限されるため、これを1に設定すると、修復コマンドが複数のテーブルまたは複数の仮想ノードを修復している場合でも、修復コマンドがこの制限を超えることはありません。
下位互換性のためにデフォルトでは制限はありませんが、複数のテーブルまたは複数の仮想ノードを修復するコマンドでOOMが発生する可能性があります。仮想ノードを使用しない場合は、同時Merkleツリー要求を1つに制限することを一般的に推奨します。そのため、repair_session_space
、そしてMerkleツリーの解像度を高めることができます。仮想ノードを使用する場合は、各範囲に含まれるデータが少なくなるため、repair_session_space
を削減し、concurrent_merkle_tree_requests
の値を増やすことが理にかなっています。
詳細については、issues.apache.org/jira/browse/CASSANDRA-19336を参照してください。
0の値は制限がないことを意味します。
デフォルト値 0
commitlog_total_space
このオプションはデフォルトでコメントアウトされています。 # それをサポートする各修復メッセージの再試行を構成します。現時点では、再試行は指数アルゴリズムを使用しており、各試行はbase_sleep_time
と試行に基づいてより長くスリープします。retries: max_attempts: 10 base_sleep_time: 200ms max_sleep_time: 1s # Merkleツリーを含むため、検証応答のタイムアウトを増やします merkle_tree_response: base_sleep_time: 30s max_sleep_time: 1m
ディスク上のコミットログに使用する合計容量。
この値を超えると、Cassandraは最も古いセグメント内のすべてのダーティCFをフラッシュし、削除します。そのため、コミットログの容量が小さいと、アクティビティの少ないカラムファミリでフラッシュアクティビティが増える傾向があります。
デフォルト値は、8192とコミットログボリュームの合計容量の1/4のうち小さい方の値です。
デフォルト値: 8192MiB
memtable_flush_writers
このオプションはデフォルトでコメントアウトされています。
これは、ディスクあたりのmemtableフラッシュライタースレッド数と、同時にフラッシュできるmemtableの総数を設定します。これらは一般的に、計算とIOの両方に関連します。
Memtableのフラッシュは、memtableの取り込みよりもCPU効率が高く、単一のスレッドは、通常コンパクションで競合するまで一時的にIOバウンドになるまで、高速ディスク上のサーバー全体の取り込み速度に追いつくことができます。その時点で、複数のフラッシュスレッドが必要になります。将来的には、常にCPUバウンドになる可能性があります。
MemtablePool.BlockedOnAllocation
メトリックを使用して、フラッシュが遅れているかどうかを確認できます。これは0である必要がありますが、スレッドがフラッシュを待ってメモリを解放している場合は0以外になります。
memtable_flush_writers
は、単一データディレクトリの場合、デフォルトで2に設定されています。これは、2つのmemtableを単一データディレクトリに同時にフラッシュできることを意味します。複数のデータディレクトリがある場合、デフォルトでは一度に1つのmemtableがフラッシュされますが、フラッシュはデータディレクトリごとにスレッドを使用するため、2つ以上のライターが取得されます。
高速ディスク[アレイ]を単一データディレクトリとしてマウントした場合、2つは一般的にフラッシュするには十分です。フラッシュライターを追加すると、より小さく頻繁なフラッシュが発生し、コンパクションのオーバーヘッドが増加します。
同時にフラッシュできるmemtableの数と、フラッシュのサイズと頻度の間には直接的なトレードオフがあります。多ければ良いというわけではなく、メモリを解放するためにフラッシュを待つことがないように、十分な数のフラッシュライターが必要なだけです。
デフォルト値 2
cdc_total_space
このオプションはデフォルトでコメントアウトされています。
ディスク上の変更データキャプチャログに使用する合計容量。
この値を超えると、Cassandraは、CDCが有効になっているテーブルを含むMutationsでWriteTimeoutException
をスローします。CDCコンパクタは、生のCDCログを解析し、解析が完了したら削除する役割を担っています。
デフォルト値は、4096MiBとcdc_raw_directory
が存在するドライブの合計容量の1/8のうち小さい方の値です。最小単位:MiB
デフォルト値: 4096MiB
cdc_free_space_check_interval
このオプションはデフォルトでコメントアウトされています。
cdc_raw
の制限に達し、CDCコンパクタが遅れているか、バックプレッシャーを受けている場合、次の間隔で、CDC追跡テーブルで使用できる新しい容量があるかどうかを確認します。デフォルトは250ms 最小単位:ms
デフォルト値: 250ms
index_summary_capacity
SSTableインデックスサマリーの固定メモリプールサイズ(MB)。空のままにした場合、ヒープサイズの5%がデフォルトになります。すべてのインデックスサマリーのメモリ使用量がこの制限を超えると、読み取りレートの低いSSTableは、この制限を満たすためにインデックスサマリーを縮小します。ただし、これは最善の努力によるプロセスです。極端な状況では、Cassandraはこの量を超えるメモリを使用する必要がある場合があります。インデックスサマリーを使用する形式(例:BIG)にのみ関連します。最小単位:KiB
index_summary_resize_interval
インデックスサマリーを再サンプリングする頻度。これは定期的に行われ、固定サイズプールのメモリを、最近の読み取りレートに比例してSSTableに再分配します。null値に設定すると、このプロセスが無効になり、既存のインデックスサマリーは現在のサンプリングレベルのままになります。インデックスサマリーを使用する形式(例:BIG)にのみ関連します。最小単位:m
デフォルト値: 60m
trickle_fsync
シーケンシャル書き込みを行う際に、間隔を置いてfsync()
を実行して、オペレーティングシステムにダーティバッファをフラッシュさせるかどうか。読み取りレイテンシへの影響を避けるために、これを有効にしてください。SSDではほとんどの場合良いアイデアです。プラッタでは必ずしもそうではありません。
デフォルト値: false
storage_port
コマンドとデータ用のTCPポート。セキュリティ上の理由から、このポートをインターネットに公開しないでください。必要に応じてファイアウォールで保護してください。
デフォルト値 7000
ssl_storage_port
レガシー暗号化通信用のSSLポート。このプロパティは、server_encryption_options
で有効にしない限り使用されません(下記参照)。Cassandra 4.0以降、このプロパティは非推奨です。単一のポートを安全な接続と安全でない接続のどちらか、または両方で使用できるからです。セキュリティ上の理由から、このポートをインターネットに公開しないでください。必要に応じてファイアウォールで保護してください。
デフォルト値 7001
listen_address
他のCassandraノードが接続するためにバインドするアドレスまたはインターフェースです。複数のノードが通信できるようにするには、これを変更する必要があります。
listen_address
またはlisten_interface
のいずれか一方を設定し、両方同時に設定しないでください。
空欄のままにすると、`InetAddress.getLocalHost()`に委ねられます。ノードが適切に構成されている場合(ホスト名、名前解決など)、これは常に正しい動作を行い、ホスト名に関連付けられたアドレスを使用します(必ずしもそうとは限りません)。解決できない場合、`InetAddress.getLoopbackAddress()`にフォールバックしますが、これは本番システムには適していません。
listen_address
を`0.0.0.0`に設定することは常に間違っています。
デフォルト値: localhost
listen_interface
このオプションはデフォルトでコメントアウトされています。
listen_address
またはlisten_interface
のいずれか一方を設定し、両方同時に設定しないでください。インターフェースは単一のアドレスに対応する必要があり、IPエイリアシングはサポートされていません。
デフォルト値: eth0
listen_interface_prefer_ipv6
このオプションはデフォルトでコメントアウトされています。
インターフェースを名前で指定し、そのインターフェースにIPv4アドレスとIPv6アドレスの両方がある場合、`listen_interface_prefer_ipv6`を使用してどちらを選択するかを指定できます。`false`の場合、最初のIPv4アドレスが使用されます。`true`の場合、最初のIPv6アドレスが使用されます。デフォルトは`false`で、IPv4が優先されます。アドレスが1つしかない場合は、IPv4/IPv6に関係なく選択されます。
デフォルト値: false
broadcast_address
このオプションはデフォルトでコメントアウトされています。
他のCassandraノードにブロードキャストするアドレスです。空欄のままにすると、`listen_address`と同じ値に設定されます。
デフォルト値 1.2.3.4
listen_on_broadcast_address
このオプションはデフォルトでコメントアウトされています。
複数の物理ネットワークインターフェースを使用する場合、`listen_address`に加えて`broadcast_address`もリッスンするように`true`に設定します。これにより、ノードは両方のインターフェースで通信できます。EC2など、ネットワーク構成がパブリックネットワークとプライベートネットワーク間を自動的にルーティングする場合は、このプロパティを無視してください。
デフォルト値: false
internode_authenticator
このオプションはデフォルトでコメントアウトされています。
ピアノードからの接続を許可/拒否するために使用される、`IInternodeAuthenticator`を実装するノード間認証バックエンド。
start_native_transport
class_name : org.apache.cassandra.auth.AllowAllInternodeAuthenticator parameters : MutualTlsInternodeAuthenticator can be configured using the following configuration.One can add their own validator which implements MutualTlsCertificateValidator class and provide logic for extracting identity out of certificates and validating certificates. class_name : org.apache.cassandra.auth.MutualTlsInternodeAuthenticator parameters : validator_class_name: org.apache.cassandra.auth.SpiffeCertificateValidator trusted_peer_identities: "spiffe1,spiffe2" node_identity: "spiffe1" Whether to start the native transport server. The address on which the native transport is bound is defined by rpc_address.
デフォルト値: true
native_transport_port
クライアントが接続をリッスンするCQLネイティブトランスポートのポートです。セキュリティ上の理由から、このポートをインターネットに公開しないでください。必要に応じてファイアウォールで保護してください。
デフォルト値 9042
native_transport_port_ssl
このオプションはデフォルトでコメントアウトされています。 `client_encryption_options`でネイティブトランスポートの暗号化を有効にすると、標準ポートに対して暗号化を使用するか、暗号化されていない標準の`native_transport_port`と共に専用の追加ポートを使用できます。クライアントの暗号化を有効にして`native_transport_port_ssl`を無効のままにすると、`native_transport_port`に対して暗号化が使用されます。`native_transport_port_ssl`を`native_transport_port`とは異なる値に設定すると、`native_transport_port_ssl`に対して暗号化が使用され、`native_transport_port`は暗号化されません。この機能はCassandra 5.0以降非推奨となっており、削除される予定です。NEWS.txtの非推奨セクションを参照してください。
デフォルト値 9142
native_transport_max_threads
このオプションはデフォルトでコメントアウトされています。リクエストを処理するための最大スレッド数です(アイドルスレッドは30秒後に停止されるため、対応する最小設定はありません)。
デフォルト値 128
native_transport_max_frame_size
このオプションはデフォルトでコメントアウトされています。
許可されるフレームの最大サイズです。これよりも大きいフレーム(リクエスト)は、無効として拒否されます。デフォルトは16MiBです。このパラメーターを変更する場合は、必要に応じて`max_value_size`も調整する必要があります。正の値で、2048未満である必要があります。最小単位:MiB
デフォルト値: 16MiB
native_transport_max_concurrent_connections
このオプションはデフォルトでコメントアウトされています。
同時クライアント接続の最大数です。デフォルトは-1で、無制限を意味します。
デフォルト値 -1
native_transport_max_concurrent_connections_per_ip
このオプションはデフォルトでコメントアウトされています。
送信元IPアドレスごとの同時クライアント接続の最大数です。デフォルトは-1で、無制限を意味します。
デフォルト値 -1
native_transport_allow_older_protocols
Cassandraが現在サポートされている古いプロトコルバージョンを尊重するかどうかを制御します。デフォルトは`true`で、サポートされているすべてのプロトコルが尊重されます。
デフォルト値: true
native_transport_idle_timeout
このオプションはデフォルトでコメントアウトされています。
アイドルクライアント接続が閉じられるタイミングを制御します。アイドル接続とは、一定期間読み取りも書き込みもなかった接続のことです。
クライアントは、タイムアウト後にOPTIONSネイティブプロトコルメッセージを送信することでハートビートを実装し、サーバー側でアイドルタイムアウトタイマーをリセットできます。アイドルクライアント接続を閉じるには、ハートビート間隔に対応する値をクライアント側で設定する必要があります。
アイドル接続タイムアウトはデフォルトで無効になっています。最小単位:ms
デフォルト値: 60000ms
native_transport_rate_limiting_enabled
このオプションはデフォルトでコメントアウトされています。
有効にすると、1秒間に処理のためにディスパッチされるネイティブトランスポートリクエストの数を制限します。制限を超えた場合の動作は、接続確立時にクライアントから送信されるSTARTUPメッセージで指定されたTHROW_ON_OVERLOADの値によって異なります。(「CQL BINARY PROTOCOL v5」の「4.1.1. STARTUP」セクションを参照してください。)THROW_ON_OVERLOADフラグが有効になっている場合、制限を超えるメッセージは破棄され、クライアントが処理するOverloadedExceptionがスローされます。フラグが無効になっている場合、サーバーはチャネル/ソケットからのメッセージの消費を停止し、既にディスパッチされたメッセージが処理されている間に、クライアントにバックプレッシャーをかけます。
デフォルト値: false
rpc_address
ネイティブトランスポートサーバーをバインドするアドレスまたはインターフェースです。
rpc_address
またはrpc_interface
のいずれか一方を設定し、両方同時に設定しないでください。
rpc_address
を空欄のままにすると、`listen_address`の場合と同じ効果があります(つまり、ノードの構成されたホスト名に基づきます)。
`listen_address`とは異なり、`0.0.0.0`を指定できますが、`broadcast_rpc_address`を`0.0.0.0`以外の値に設定する必要があります。
セキュリティ上の理由から、このポートをインターネットに公開しないでください。必要に応じてファイアウォールで保護してください。
デフォルト値: localhost
rpc_interface
このオプションはデフォルトでコメントアウトされています。
rpc_address
またはrpc_interface
のいずれか一方を設定し、両方同時に設定しないでください。インターフェースは単一のアドレスに対応する必要があり、IPエイリアシングはサポートされていません。
デフォルト値: eth1
rpc_interface_prefer_ipv6
このオプションはデフォルトでコメントアウトされています。
インターフェースを名前で指定し、そのインターフェースにIPv4アドレスとIPv6アドレスの両方がある場合、`rpc_interface_prefer_ipv6`を使用してどちらを選択するかを指定できます。`false`の場合、最初のIPv4アドレスが使用されます。`true`の場合、最初のIPv6アドレスが使用されます。デフォルトは`false`で、IPv4が優先されます。アドレスが1つしかない場合は、IPv4/IPv6に関係なく選択されます。
デフォルト値: false
broadcast_rpc_address
このオプションはデフォルトでコメントアウトされています。
ドライバーや他のCassandraノードにブロードキャストするRPCアドレスです。これは`0.0.0.0`に設定できません。空欄のままにすると、`rpc_address`の値に設定されます。`rpc_address`が`0.0.0.0`に設定されている場合、`broadcast_rpc_address`を設定する必要があります。
デフォルト値 1.2.3.4
internode_socket_send_buffer_size
このオプションはデフォルトでコメントアウトされています。
ノード間通信のソケットバッファーサイズを設定するには、コメントを外します。これを設定する場合、バッファーサイズは`net.core.wmem_max`によって制限され、設定しない場合は`net.ipv4.tcp_wmem`によって定義されます。`man tcp`および`/proc/sys/net/core/wmem_max`、`/proc/sys/net/core/rmem_max`、`/proc/sys/net/ipv4/tcp_wmem`、`/proc/sys/net/ipv4/tcp_rmem`も参照してください。最小単位:B
internode_socket_receive_buffer_size
このオプションはデフォルトでコメントアウトされています。
ノード間通信のソケットバッファーサイズを設定するには、コメントを外します。これを設定する場合、バッファーサイズは`net.core.wmem_max`によって制限され、設定しない場合は`net.ipv4.tcp_wmem`によって定義されます。最小単位:B
incremental_backups
Cassandraに、このノード内のすべてのキースペースデータの`backups/`サブディレクトリに、ローカルでフラッシュまたはストリーミングされた各SSTableへのハードリンクを作成させるには、`true`に設定します。これらのリンクの削除はオペレーターの責任です。オペレーターは、テーブルパラメーター`incremental_backups`を`false`に設定することで、指定されたテーブルの増分バックアップをオフにすることもできます。これはデフォルトで`true`に設定されています。CASSANDRA-15402を参照してください。
デフォルト値: false
snapshot_before_compaction
各圧縮の前にスナップショットを作成するかどうかです。Cassandraはスナップショットを自動的にクリーンアップしないため、このオプションの使用には注意が必要です。データ形式の変更時に念のため使用するのに役立ちます。
デフォルト値: false
auto_snapshot
キースペースの切り詰めまたは列ファミリの削除の前に、データのスナップショットを作成するかどうかです。データの安全性を確保するために、強く推奨されるデフォルトの`true`を使用する必要があります。このフラグを`false`に設定すると、切り詰めまたは削除時にデータが失われます。
デフォルト値: true
auto_snapshot_ttl
このオプションはデフォルトでコメントアウトされています。
テーブルの切り詰めまたは削除(有効になっている場合)によって生成された自動スナップショットに存続時間(TTL)を追加します。TTLが経過すると、スナップショットは自動的にクリアされます。デフォルトでは、自動スナップショットにはTTLがありません。自動スナップショットでTTLを有効にするには、以下のプロパティのコメントを外してください。許容される単位:d(日)、h(時間)、またはm(分)
デフォルト値: 30d
snapshot_links_per_second
スナップショットの作成またはクリアには、場合によっては数万個のリンクの作成または削除が含まれ、特に消費者向けSSDでは、パフォーマンスに大きな影響を与える可能性があります。ここでゼロ以外の値を使用すると、これらのリンクを調整して、スナップショットの作成とクリアによるパフォーマンスへの悪影響を回避できます。
デフォルト値 0
sstable
このオプションはデフォルトでコメントアウトされています。
SSTable形式の構成です。SSTable形式の実装は、サービスローダーメカニズムを使用してロードされます。このセクションでは、作成されたSSTableの形式を選択し、クラスパスで使用可能な形式に追加パラメーターを渡すことができます。デフォルト形式は「big」で、Cassandra 3.0以降で使用されている従来のSSTable形式です。Cassandraバージョン5.0以降は、トライインデックス付きの「bti」形式もサポートしており、パフォーマンスが向上します。
column_index_size
このオプションはデフォルトでコメントアウトされています。selected_format: big
パーティション内の行の照合インデックスの粒度です。BIGとBTIの両方のSSTable形式に適用されます。どちらの形式でも、粒度が小さいほどパーティション内の行のルックアップが速くなりますが、インデックスファイルのサイズが大きくなります。BIG形式で粒度を小さくすることはお勧めできません。これは、照合インデックスが十分に大きくなると、効率的にキャッシュできなくなるか、まったくキャッシュできなくなるためです。さらに、パーティションごとに大きな行または非常に多くの行が存在する場合は、インデックスの粒度を増やすか、BTI SSTable形式に切り替えることをお勧めします。
使用中のSSTable形式に適したデフォルト(BIGの場合は64 KiB、BTIの場合は16KiB)を使用するには、未定義のままにします。最小単位:KiB
デフォルト値: 4KiB
column_index_cache_size
このサイズを超えるsstableインデックスキーキャッシュエントリ(上記で言及したメモリ内の照合インデックス)は、ヒープ上に保持されません。つまり、ヒープ上に保持されるのはパーティション情報のみであり、インデックスエントリはディスクから読み取られます。
このサイズは、パーティションのサイズではなく、シリアル化されたインデックス情報のサイズであることに注意してください。
これは、キーキャッシュを使用するSSTable形式(例:BIG)にのみ関連します。最小単位:KiB
デフォルト値: 2KiB
default_compaction
このオプションはデフォルトでコメントアウトされています。
テーブルのパラメータでコンパクションが指定されていない場合に適用される、デフォルトのコンパクション戦略です。選択されたコンパクション戦略は、システムテーブルにも適用されます。
値が指定されていない場合、デフォルトではSizeTieredCompactionStrategyが使用され、そのデフォルトのコンパクションパラメータが適用されます。
concurrent_compactors
このオプションはデフォルトでコメントアウトされています。 class_name: SizeTieredCompactionStrategy parameters: min_threshold: 4 max_threshold: 32
同時に許可されるコンパクションの数です。エントロピー修復のための検証「コンパクション」は含まれません。同時コンパクションは、1つの長時間実行コンパクション中に小さなSSTableが蓄積される傾向を軽減することにより、読み取り/書き込みの混合ワークロードでの読み取りパフォーマンスの維持に役立ちます。通常はデフォルト値で問題ありませんが、コンパクションの実行が遅すぎるか速すぎる場合、最初にcompaction_throughputを確認する必要があります。
concurrent_compactorsは、(ディスク数、コア数のうち小さい方の数)をデフォルトとし、最小値は2、最大値は8です。
データディレクトリがSSDによってバックアップされている場合は、これをコア数に増やす必要があります。
デフォルト値 1
concurrent_validations
このオプションはデフォルトでコメントアウトされています。
同時に許可される修復検証の数です。設定されていない場合、または1未満の値に設定されている場合、concurrent_compactorsの値がデフォルトになります。起動時にconcurrent_compactorsより大きい値を設定するには、システムプロパティcassandra.allow_unlimited_concurrent_validationsをtrueに設定する必要があります。実行中のノードでconcurrent_compactorsより大きい値に動的にサイズ変更するには、まずorg.apache.cassandra.db:type=StorageService MBeanでbypassConcurrentValidatorsLimitメソッドを呼び出します。
デフォルト値 0
compaction_throughput
システム全体での合計スループットにコンパクションを調整します。データの挿入が速いほど、SSTable数を抑えるためにコンパクションを速くする必要がありますが、一般的に、これをデータ挿入速度の16〜32倍に設定すれば十分です。0に設定すると、調整が無効になります。これには、検証コンパクション(修復のためのMerkleツリーの構築を含む)を含むすべてのタイプのコンパクションが含まれることに注意してください。
デフォルト値: 64MiB/s
sstable_preemptive_open_interval
コンパクション時に、置換対象のSSTableは完全に書き込まれる前に開くことができ、書き込まれた範囲については以前のSSTableの代わりに使用できます。これにより、SSTable間の読み取りをスムーズに転送し、ページキャッシュのチャーンを削減し、ホット行をホットに保つことができます。無効にするにはsstable_preemptive_open_intervalをnullに設定します。これはsstable_preemptive_open_interval_in_mbが負の数であることと同等です。最小単位:MiB
デフォルト値: 50MiB
uuid_sstable_identifiers_enabled
4.1以降、SSTableはUUIDベースの生成識別子をサポートしています。有効にすると、ダウングレードが容易ではないため、デフォルトでは無効になっています。このオプションをtrueに設定してノードを再起動すると、新しく作成されたSSTableにはUUIDベースの生成識別子が付与され、そのようなファイルは以前のバージョンのCassandraでは読み取れません。いずれこのオプションはデフォルトでtrueになり、最終的には設定から削除されます。
デフォルト値: false
stream_entire_sstables
このオプションはデフォルトでコメントアウトされています。
有効にすると、Cassandraはすべてのコンポーネントを含む、資格のあるSSTable全体をノード間でゼロコピーストリーミングできます。これにより、entire_sstable_stream_throughput_outboundで指定された調整に従って、ネットワーク転送速度が大幅に向上し、データセンター間の転送にはentire_sstable_inter_dc_stream_throughput_outboundが適用されます。これにより、送受信ノードのGC圧力が軽減されます。設定されていない場合、デフォルトは有効です。この機能はディスクのバランスを維持しようとしますが、保証はできません。ノード間暗号化が有効になっている場合、この機能は自動的に無効になります。
デフォルト値: true
entire_sstable_stream_throughput_outbound
このオプションはデフォルトでコメントアウトされています。
このノードでのSSTable全体のアウトバウンドストリーミングファイル転送を、Mbps単位の合計スループットに調整します。この値を0に設定すると、調整が無効になります。設定されていない場合、デフォルトは200 Mbpsまたは24 MiB/sです。
デフォルト値: 24MiB/s
entire_sstable_inter_dc_stream_throughput_outbound
このオプションはデフォルトでコメントアウトされています。
データセンター間のSSTable全体のファイルストリーミングを調整します。この値を0に設定すると、SSTable全体のデータセンター間ファイルストリーミングの調整が無効になります。設定されていない場合、デフォルトは200 Mbpsまたは24 MiB/sです。
デフォルト値: 24MiB/s
stream_throughput_outbound
このオプションはデフォルトでコメントアウトされています。
このノードでのすべてのアウトバウンドストリーミングファイル転送を、Mbps単位の合計スループットに調整します。Cassandraはブートストラップまたは修復中にデータのストリーミング時に主にシーケンシャルIOを行うため、これはネットワーク接続を飽和させ、RPCパフォーマンスを低下させる可能性があるため必要です。設定されていない場合、デフォルトは200 Mbpsまたは24 MiB/sです。
デフォルト値: 24MiB/s
inter_dc_stream_throughput_outbound
このオプションはデフォルトでコメントアウトされています。
データセンター間のすべてのストリーミングファイル転送を調整します。この設定により、stream_throughput_outbound_megabits_per_secで設定されているようにすべてのネットワークストリームトラフィックを調整することに加えて、データセンター間のストリームスループットを調整できます。設定されていない場合、デフォルトは200 Mbpsまたは24 MiB/sです。
デフォルト値: 24MiB/s
read_request_timeout
リクエストのサーバー側タイムアウトです。サーバーは、対応するタイムアウト内で操作を完了できない場合、クライアントにタイムアウト例外を返します。これらの設定は、次のものに対する保護策です。1) いくつかの障害のために終了しない可能性のある操作でクライアントを待機させること。2) 操作の実行時間の上限を設定することで、CPUを過剰に使用したり、過剰なデータを読み取ったりする操作(メモリ蓄積につながる)を防ぐこと。このため、これらの設定を高くしすぎないようにする必要があります。言い換えれば、基盤となるリソースの制約のためにリクエストがタイムアウトしている場合、タイムアウトを増やすと、さらに多くの問題が発生するだけです。もちろん、低すぎる設定も同様に不適切です。クライアントは、タイムアウト設定が厳しすぎるというだけで、成功した操作でもタイムアウトになる可能性があるためです。
コーディネータが読み取り操作の完了を待つ時間です。許容される最低値は10msです。最小単位:ms
デフォルト値: 5000ms
range_request_timeout
コーディネータがシーケンシャルスキャンまたはインデックススキャンの完了を待つ時間です。許容される最低値は10msです。最小単位:ms
デフォルト値: 10000ms
cas_contention_timeout
コーディネータが、同じ行に対する他の提案と競合するCAS操作を再試行し続ける時間です。許容される最低値は10msです。最小単位:ms
デフォルト値: 1000ms
truncate_request_timeout
コーディネータが切り捨ての完了を待つ時間です(これははるかに長くなる可能性があります。auto_snapshotが無効になっていない限り、最初にフラッシュして、データを削除する前にスナップショットを作成する必要があるためです)。許容される最低値は10msです。最小単位:ms
デフォルト値: 60000ms
internode_tcp_connect_timeout
このオプションはデフォルトでコメントアウトされています。
Cassandraを真のネットワークパーティションから保護するための防御的な設定です。(CASSANDRA-14358)を参照してください。
ノード間のTCP接続の確立を待つ時間です。最小単位:ms
デフォルト値: 2000ms
internode_tcp_user_timeout
このオプションはデフォルトでコメントアウトされています。
確認応答されていないデータが接続上に許可される時間です。接続を破棄する前に、この時間内にデータの確認応答がない場合、接続を破棄します。これはLinux + epollでのみサポートされており、Linux 4.12時点では30000を超える設定では奇妙に動作するようです(30秒よりはるかに長くかかります)。非常に長い時間が必要な場合は、これを0に設定するとOSのデフォルトが選択され、net.ipv4.tcp_retries2 sysctlを約8に設定できます。最小単位:ms
デフォルト値: 30000ms
internode_streaming_tcp_user_timeout
このオプションはデフォルトでコメントアウトされています。
ストリーミング接続で確認応答されていないデータが許可される時間です。デフォルトは5分です。タイムアウトを増やすには、これを増やすか、0に設定します。最小単位:ms
デフォルト値: 300000ms
internode_application_send_queue_capacity
このオプションはデフォルトでコメントアウトされています。
他のノードへの配信のためにキューに入れられ、クラスタ内の他のノードからの到着時に処理されるのを待っているメッセージに課せられる、グローバル、エンドポイントごと、接続ごとの制限です。これらの制限は、送受信されるメッセージのオンワイヤサイズに適用されます。
基本的なリンクごとの制限は、エンドポイントまたはグローバル制限が課される前に、独立して消費されます。各ノードペアには、緊急、小規模、大規模の3つのリンクがあります。したがって、特定のノードには、それらの間で調整することなく、最大でN*3*(internode_application_send_queue_capacity+internode_application_receive_queue_capacity)個のメッセージをキューに入れることができます。ただし、実際には、トークン認識ルーティングを使用すると、RF*トークンのノードだけが重要な帯域幅で通信する必要があります。
エンドポイントごとの制限は、リンクごとの制限を超えるすべてのメッセージに、グローバル制限と同時に、クラスタ内の単一ノードとの間のすべてのリンクで課せられます。グローバル制限は、リンクごとの制限を超えるすべてのメッセージに、エンドポイントごとの制限と同時に、クラスタ内の任意のノードとの間のすべてのリンクで課せられます。
最小単位:B
デフォルト値: 4MiB
internode_application_send_queue_reserve_endpoint_capacity
このオプションはデフォルトでコメントアウトされています。
デフォルト値: 128MiB
internode_application_send_queue_reserve_global_capacity
このオプションはデフォルトでコメントアウトされています。
デフォルト値: 512MiB
internode_application_receive_queue_reserve_endpoint_capacity
このオプションはデフォルトでコメントアウトされています。
デフォルト値: 128MiB
internode_application_receive_queue_reserve_global_capacity
このオプションはデフォルトでコメントアウトされています。
デフォルト値: 512MiB
slow_query_log_timeout
ノードが遅いクエリをログに記録するまでの時間です。このタイムアウトより長く実行されるSELECTクエリは、集約されたログメッセージを生成するため、遅いクエリを特定できます。遅いクエリのロギングを無効にするには、この値を0に設定します。最小単位:ms
デフォルト値: 500ms
internode_timeout
このオプションはデフォルトでコメントアウトされています。
ノード間の操作タイムアウト情報の交換を有効にし、リクエストタイムアウトを正確に測定します。無効にすると、レプリカはリクエストがコーディネーターから瞬時に転送されたと想定するため、過負荷状態では、既にタイムアウトしたリクエストの処理に余分な時間が無駄になります。
警告: これは一般的に、ユーザーがクラスタにNTPを設定しており、クロックがほぼ同期していることを前提としています。これは、最終書き込み優先の一般的な正確性のための要件です。
デフォルト値: true
streaming_keep_alive_period
このオプションはデフォルトでコメントアウトされています。
失敗したストリームの早期検出のためのアイドル状態制御メッセージの周期を設定します。このノードは、ストリーミングの制御チャネルで定期的にキープアライブメッセージを送信します。これにより、発生する可能性のあるSocketTimeoutExceptionが2つのキープアライブサイクル以内になります。ノードがnetty制御チャネルでキープアライブメッセージの送信に失敗した場合、または送信がタイムアウトした場合、ストリームセッションは閉じられます。デフォルト値は300秒(5分)で、これは停止したストリームが10分以内に検出されることを意味します。無効にするには0を指定します。最小単位: s
デフォルト値: 300s
streaming_connections_per_host
このオプションはデフォルトでコメントアウトされています。
ストリーミングごとのホストあたりの接続数を制限します。結合処理がネットワークに比べてCPUバウンドになっていることに気付いた場合(たとえば、大きなファイルを持つノードがいくつかある場合)、この値を増やします。
デフォルト値 1
streaming_state_expires
このオプションはデフォルトでコメントアウトされています。
ストリーム統計追跡の設定。system_views.streamingテーブルで使用されます。ストリームが追跡から削除されるまでの時間。これは、履歴上のストリームと現在実行中のストリームの両方に影響します。
デフォルト値: 3d
streaming_state_size
このオプションはデフォルトでコメントアウトされています。追跡からセッションを削除する前に使用できるメモリの量。この値を超えると、履歴上のストリームと現在実行中のストリームの両方に影響する可能性があります。
デフォルト値: 40MiB
partition_denylist_enabled
このオプションはデフォルトでコメントアウトされています。
構成されたキー空間、テーブル、パーティションに対する操作への構成可能なアクセス(rw/rr)を拒否できます。これは、オペレーターがクラスタの健全性をアプリケーションアクセスに対して管理するために使用することを目的としています。詳細については、CASSANDRA-12106およびCEP-13を参照してください。
デフォルト値: false
denylist_refresh
このオプションはデフォルトでコメントアウトされています。
拒否リストのキャッシュ内のキーが「期限切れ」になり、バックエンドDBから非同期的に更新される間隔。注: これはフェールセーフとしてのみ機能します。使用パターンは、基になる拒否リストエントリの変更時に「状態の変更、キャッシュの更新」になることが予想されます。詳細はドキュメントを参照してください。最小単位: s
デフォルト値: 600s
denylist_initial_load_retry
このオプションはデフォルトでコメントアウトされています。
拒否リストキャッシュの読み込みを試行した際にエラーが発生した場合、この間隔で再試行します。最小単位: s
デフォルト値: 5s
denylist_max_keys_per_table
このオプションはデフォルトでコメントアウトされています。
テーブルごとに許可される拒否リストされたキーの数を制限して、無制限に増加するのを防ぎます。ノードはこの制限を超えると警告を表示しますが、新しい拒否リストされたキーの挿入は許可します。オーバーフローが発生した場合、拒否されたキーはパーティションキーで自然なクエリ/クラスタリング順序で読み込まれます。
デフォルト値 1000
denylist_max_keys_total
このオプションはデフォルトでコメントアウトされています。
クラスタで許可される拒否リストされたキーの総数を制限して、無制限に増加するのを防ぎます。ノードは、初期キャッシュ読み込み時にキーが多すぎることを警告し、オペレーターに構成された制限内になるように余剰エントリをトリミングするように指示します。
デフォルト値 10000
denylist_consistency_level
このオプションはデフォルトでコメントアウトされています。
拒否リストは多くの点で、オペレーターが不良状態にあると識別したパーティションからクラスタの健全性を保護するために機能するため、これらのテーブルとの間の操作では、CL.ONEよりも堅牢性が求められるのが一般的です。これらの保護策が確実に実施されるようにするためです。ただし、ユーザーは必要に応じてこれを構成できます。
デフォルト値: QUORUM
phi_convict_threshold
このオプションはデフォルトでコメントアウトされています。
ホストをダウンマークする必要があるphi値。ほとんどのユーザーはこれを調整する必要はありません。
デフォルト値 8
endpoint_snitch
endpoint_snitch
— IEndpointSnitchを実装するクラスに設定します。スニッチには2つの機能があります。
-
Cassandraにネットワークトポロジに関する十分な情報を伝え、リクエストを効率的にルーティングします。
-
関連する障害を回避するために、Cassandraがレプリカをクラスタ全体に分散できるようにします。「データセンター」と「ラック」にマシンをグループ化することで実現します。Cassandraは、同じ「ラック」(実際には物理的な場所ではない場合があります)に複数のレプリカが存在しないように最善を尽くします。
データがクラスタに挿入された後は、互換性のないスニッチに切り替えることはできません。これによりデータが失われます。つまり、すべてのノードを「datacenter1」の「rack1」に配置するデフォルトのSimpleSnitchから開始した場合、別のデータセンターを追加する必要がある場合の唯一の選択肢は、GossipingPropertyFileSnitch(および古いPFS)です。そこから、Ec2Snitchなどの互換性のないスニッチに移行する必要がある場合は、Ec2Snitchの下に新しいノードを追加し(これにより新しい「データセンター」に配置されます)、古いノードを廃止することで行うことができます。
すぐに使用できるCassandraには、次のものが提供されています。
SimpleSnitch: ストラテジーの順序を近接性として扱います。読み込み修復を無効にした場合、キャッシュの局所性を向上させることができます。単一データセンターの展開にのみ適しています。
GossipingPropertyFileSnitch: これは本番環境で使用するためのスニッチです。ローカルノードのラックとデータセンターはcassandra-rackdc.propertiesで定義され、ゴシップを介して他のノードに伝播されます。cassandra-topology.propertiesが存在する場合は、フォールバックとして使用され、PropertyFileSnitchからの移行を可能にします。
PropertyFileSnitch: 近接性は、cassandra-topology.propertiesで明示的に構成されているラックとデータセンターによって決定されます。
AlibabaCloudSnitch: AlibabaクラウドのメタデータサービスからノードのDCとラックを取得するためのスニッチ。このスニッチは、ECSリージョンがDCであり、ECS可用性ゾーンがラックであることを前提としています。
AzureSnitch: インスタンスメタデータサービスの「compute」オブジェクトの「location」フィールドからデータセンターを、「zone」フィールドからラックを取得します。可用性ゾーンが無効になっている場合、フォールトドメインを使用し、対応する値を取得します。
CloudstackSnitch: Cloudstackゾーンがcountry-location-azという一般的な規則に従っており、国/場所のタプルをデータセンターとして、可用性ゾーンをラックとして使用するスニッチ。警告: このスニッチは非推奨であり、次のメジャーバージョンのCassandraで削除される予定です。
Ec2Snitch: 単一リージョンのEC2展開に適しています。EC2 APIからリージョンと可用性ゾーンの情報をロードします。リージョンはデータセンターとして、可用性ゾーンはラックとして扱われます。プライベートIPのみが使用されるため、複数のリージョンでは機能しません。
Ec2MultiRegionSnitch: パブリックIPをbroadcast_addressとして使用して、リージョン間の接続を可能にします。(したがって、シードアドレスもパブリックIPに設定する必要があります。)パブリックIPファイアウォールでstorage_portまたはssl_storage_portを開く必要があります。(リージョン内トラフィックの場合、Cassandraは接続を確立した後にプライベートIPに切り替えます。)
GoogleCloudSnitch: GoogleクラウドのメタデータサービスからノードのDCとラックを取得するためのスニッチ。このスニッチは、GCEリージョンがDCであり、GCE可用性ゾーンがラックであることを前提としています。
RackInferringSnitch: 近接性は、ラックとデータセンターによって決定され、それぞれノードのIPアドレスの3番目と2番目のオクテットに対応すると想定されます。これは、展開規則と一致しない限り、カスタムスニッチクラスの作成例として最適であり、その精神で提供されています。
クラスパスにあると想定されるスニッチの完全なクラス名を指定することで、カスタムスニッチを使用できます。
デフォルト値: SimpleSnitch
dynamic_snitch_badness_threshold
0より大きい値に設定されている場合、レプリカをホストに「固定」してキャッシュ容量を増やすことができます。不良しきい値は、動的スニッチが他のレプリカを優先する前に、固定されたホストがどれだけ悪化する必要があるかを制御します。これは、パーセンテージを表す倍精度浮動小数点数として表現されます。したがって、0.2の値は、固定されたホストが最も速いホストよりも20%悪化するまで、Cassandraが静的スニッチ値を優先し続けることを意味します。
デフォルト値 1.0
crypto_provider
Java暗号プロバイダーを構成します。デフォルトでは、Amazon Correto Crypto ProviderをインストールするDefaultCryptoProviderを使用します。
Amazon Correto Crypto Providerは現在、x86_64およびaarch_64プラットフォームで動作します。このプロバイダーが失敗した場合、JREのデフォルトの暗号プロバイダーにフォールバックします。
プロバイダーが正しくインストールされていない場合にエラーを強制するには、プロパティ「fail_on_missing_provider」を「true」に設定します。
暗号プロバイダーのインストールをバイパスするには、クラス「org.apache.cassandra.security.JREProvider」を使用します。
server_encryption_options
サーバー間のノード間暗号化を構成します。
サポートされているSSLソケットプロトコルと暗号スイートのJVMとnettyのデフォルトは、カスタム暗号化オプションを使用して置き換えることができます。これは、特定の設定を指示するポリシーがある場合、またはJVMを更新できない場合に脆弱な暗号またはプロトコルを無効にする必要がある場合を除いて、お勧めしません。
FIPS準拠の設定はJVMレベルで構成でき、ここの暗号化設定の変更は必要ありません: docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/FIPS.html
注記 このデフォルト設定は安全でない設定です。サーバー間暗号化を有効にする必要がある場合は、次の手順に従ってサーバーキーストア(および相互認証用のトラストストア)を生成してください。download.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore その後、以下の設定変更を実行してください。
ステップ1: internode_encryption=<dc|rack|all>
を設定し、明示的に optional=true
を設定します。すべてのノードを再起動します。
ステップ2: optional=false
に設定する(または削除する)か、トラストストアを生成して相互認証を使用する場合は require_client_auth=true
を設定します。すべてのノードを再起動します。
デフォルト値(複雑なオプション):
# On outbound connections, determine which type of peers to securely connect to. # The available options are : # none : Do not encrypt outgoing connections # dc : Encrypt connections to peers in other datacenters but not within datacenters # rack : Encrypt connections to peers in other racks but not within racks # all : Always use encrypted connections internode_encryption: none # When set to true, encrypted and unencrypted connections are allowed on the storage_port # This should _only be true_ while in unencrypted or transitional operation # optional defaults to true if internode_encryption is none # optional: true # If enabled, will open up an encrypted listening socket on ssl_storage_port. Should only be used # during upgrade to 4.0; otherwise, set to false. legacy_ssl_storage_port_enabled: false # Set to a valid keystore if internode_encryption is dc, rack or all keystore: conf/.keystore #keystore_password: cassandra # Configure the way Cassandra creates SSL contexts. # To use PEM-based key material, see org.apache.cassandra.security.PEMBasedSslContextFactory # ssl_context_factory: # # Must be an instance of org.apache.cassandra.security.ISslContextFactory # class_name: org.apache.cassandra.security.DefaultSslContextFactory # During internode mTLS authentication, inbound connections (acting as servers) use keystore, keystore_password # containing server certificate to create SSLContext and # outbound connections (acting as clients) use outbound_keystore & outbound_keystore_password with client certificates # to create SSLContext. By default, outbound_keystore is the same as keystore indicating mTLS is not enabled. # outbound_keystore: conf/.keystore # outbound_keystore_password: cassandra # Verify peer server certificates require_client_auth: false # Set to a valid trustore if require_client_auth is true truststore: conf/.truststore #truststore_password: cassandra # Verify that the host name in the certificate matches the connected host require_endpoint_verification: false # More advanced defaults: # protocol: TLS # store_type: JKS # cipher_suites: [ # TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, # TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, # TLS_RSA_WITH_AES_256_CBC_SHA # ]
client_encryption_options
クライアントからサーバーへの暗号化を設定します。
注記 このデフォルト設定は安全でない設定です。クライアントからサーバーへの暗号化を有効にする必要がある場合は、次の手順に従ってサーバーキーストア(および相互認証用のトラストストア)を生成してください。download.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore その後、以下の設定変更を実行してください。
ステップ1: enabled=true
を設定し、明示的に optional=true
を設定します。すべてのノードを再起動します。
ステップ2: optional=false
に設定する(または削除する)か、トラストストアを生成して相互認証を使用する場合は require_client_auth=true
を設定します。すべてのノードを再起動します。
デフォルト値(複雑なオプション):
# Enable client-to-server encryption enabled: false # When set to true, encrypted and unencrypted connections are allowed on the native_transport_port # This should _only be true_ while in unencrypted or transitional operation # optional defaults to true when enabled is false, and false when enabled is true. # optional: true # Set keystore and keystore_password to valid keystores if enabled is true keystore: conf/.keystore #keystore_password: cassandra # Configure the way Cassandra creates SSL contexts. # To use PEM-based key material, see org.apache.cassandra.security.PEMBasedSslContextFactory # ssl_context_factory: # # Must be an instance of org.apache.cassandra.security.ISslContextFactory # class_name: org.apache.cassandra.security.DefaultSslContextFactory # Verify client certificates require_client_auth: false # require_endpoint_verification: false # Set trustore and truststore_password if require_client_auth is true # truststore: conf/.truststore # truststore_password: cassandra # More advanced defaults: # protocol: TLS # store_type: JKS # cipher_suites: [ # TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, # TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, # TLS_RSA_WITH_AES_256_CBC_SHA # ]
internode_compression
internode_compression
は、ノード間のトラフィックを圧縮するかどうかを制御します。以下の値が可能です。
all: すべてのトラフィックを圧縮します。
dc: 異なるデータセンター間のトラフィックを圧縮します。
none: 圧縮しません。
デフォルト値: dc
inter_dc_tcp_nodelay
データセンター間の通信に対する tcp_nodelay
を有効または無効にします。無効にすると、より大きな(しかし少ない)ネットワークパケットが送信されるようになり、TCPプロトコル自体のオーバーヘッドが削減されますが、データセンター間の応答をブロックする場合、レイテンシが増加する可能性があります。
デフォルト値: false
user_defined_functions_enabled
設定されていない場合、gc_log_threshold
を超えるすべてのGC一時停止がINFOレベルでログに記録されます。UDF(ユーザー定義関数)はデフォルトで無効になっています。Cassandra 3.0以降、悪意のあるコードの実行を防ぐためのサンドボックスが導入されています。
デフォルト値: false
transparent_data_encryption_options
ディスク上のデータ(保存時)の暗号化を有効にします。さまざまなキープロバイダーをプラグインできますが、デフォルトではJCEスタイルのキーストアから読み取ります。「key_alias」によって参照されるキーだけが暗号化操作に使用されます。以前使用されていたキーはキーストアに残しておくことができ(そして残しておくべきです)、復号化操作で使用されます(キーローテーションの場合に対応するため)。
JDKのバージョンに対応するJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Filesをダウンロードしてインストールすることを強くお勧めします。(現在のリンク:www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)
現在、透過的なデータ暗号化では、commitlog、hintsといったファイルタイプのみがサポートされていますが、今後のCassandraリリースでさらにサポートされる予定です。
デフォルト値(複雑なオプション):
enabled: false chunk_length_kb: 64 cipher: AES/CBC/PKCS5Padding key_alias: testing:1 # CBC IV length for AES needs to be 16 bytes (which is also the default size) # iv_length: 16 key_provider: - class_name: org.apache.cassandra.security.JKSKeyProvider parameters: - keystore: conf/.keystore keystore_password: cassandra store_type: JCEKS key_password: cassandra
tombstone_warn_threshold
安全しきい値 #
パーティション内またはパーティション間でスキャンを実行する場合、削除された行を他のレプリカにも認識させるために、メモリに保持する必要があるため、多くのtombstoneを生成するワークロードでは、パフォーマンスの問題やサーバーヒープの枯渇を引き起こす可能性があります。(www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets)危険性を理解し、さらに多くのtombstoneをスキャンする必要がある場合は、ここでしきい値を調整してください。これらのしきい値は、StorageService MBeanを使用して実行時にも調整できます。
デフォルト値 1000
replica_filtering_protection
ONE/LOCAL_ONE以上の読み取り整合性レベルでのフィルタリングとセカンダリインデックスクエリは、レプリカフィルタリング保護と呼ばれるメカニズムを使用して、古いレプリカからの結果が整合性を違反しないようにします。(詳細については、CASSANDRA-8272とCASSANDRA-15907を参照してください。)このメカニズムは、コーディネータでパーティションごとにレプリカの結果をヒープ上にマテリアライズします。レプリカによって返される可能性のある古い結果が多くなるほど、クエリ中にマテリアライズされる行が多くなります。
batch_size_warn_threshold
この値を超える複数パーティションのバッチサイズごとにWARNログを出力します。デフォルトは5KiB/バッチです。このしきい値のサイズを増やすとノードの不安定性につながる可能性があるため、注意が必要です。最小単位:KiB
デフォルト値: 5KiB
batch_size_fail_threshold
この値を超える複数パーティションのバッチを失敗させます。デフォルトは50KiB(警告しきい値の10倍)です。最小単位:KiB
デフォルト値: 50KiB
unlogged_batch_across_partitions_warn_threshold
LOGGEDタイプではないバッチで、この制限を超えるパーティションにまたがるバッチごとにWARNログを出力します。
デフォルト値 10
gc_log_threshold
このオプションはデフォルトでコメントアウトされています。
200msを超えるGC一時停止はINFOレベルでログに記録されます。必要に応じて、ログを最小限に抑えるためにこのしきい値を調整できます。最小単位:ms
デフォルト値: 200ms
gc_warn_threshold
このオプションはデフォルトでコメントアウトされています。
gc_warn_threshold
を超えるGC一時停止はWARNレベルでログに記録されます。アプリケーションのスループット要件に基づいてしきい値を調整します。0に設定すると、この機能は無効になります。最小単位:ms
デフォルト値: 1000ms
max_value_size
このオプションはデフォルトでコメントアウトされています。
SSTable内の任意の値の最大サイズ。早期にSSTableの破損を検出するための安全対策です。このしきい値を超える値のサイズは、SSTableを破損済みとしてマークすることにつながります。これは正の値で、2GiB未満である必要があります。最小単位:MiB
デフォルト値: 256MiB
default_keyspace_rf
このオプションはデフォルトでコメントアウトされています。
-
キー空間作成への影響 ** キー空間の作成時にレプリケーションファクターが指定されていない場合、
default_keyspace_rf
が適用されます。この設定を変更しても、変更後に作成されたキー空間のみに影響し、変更前に作成された既存のキー空間には影響しません。 -
キー空間変更への影響 ** キー空間をNetworkTopologyStrategyからSimpleStrategyに変更する場合、rfが明示的に指定されていない場合は
default_keyspace_rf
が適用されます。 -
システムキー空間への影響 ** これは、レプリケーションファクターが必要なシステムキー空間にも適用されます。システムキー空間に関する追加の注記 - system_tracesおよびsystem_distributedキー空間は、2またはデフォルトのいずれか大きい方のRFを取り、system_authキー空間は1またはデフォルトのいずれか大きい方のRFを取ります。本番環境で使用する場合の推奨値:3
デフォルト値 1
ideal_consistency_level
このオプションはデフォルトでコメントアウトされています。
書き込みでタイムアウトすることなく理想的な整合性レベルに到達したかどうかを示すメトリックをキー空間ごとに追跡します。これは、可用性を向上させるために低い可能性のある、各書き込みによって要求される整合性レベルとは異なります。
デフォルト値: EACH_QUORUM
automatic_sstable_upgrade
このオプションはデフォルトでコメントアウトされています。
アップグレード後にSSTableを自動的にアップグレードします。通常の圧縮を実行する必要がない場合、アップグレードされていない最も古いSSTableが最新バージョンにアップグレードされます。
デフォルト値: false
max_concurrent_automatic_sstable_upgrades
このオプションはデフォルトでコメントアウトされています。 同時SSTableアップグレードの数を制限します。
デフォルト値 1
audit_logging_options
監査ログ - 受信したすべてのCQLコマンドリクエスト、ノードへの認証をログに記録します。さまざまな設定オプションと本番環境でのヒントについては、監査ログに関するドキュメントを参照してください。
full_query_logging_options
このオプションはデフォルトでコメントアウトされています。
完全クエリログのデフォルトオプション - これらは、nodetool enablefullquerylogを実行するときにコマンドラインからオーバーライドできます。
corrupted_tombstone_strategy
このオプションはデフォルトでコメントアウトされています。
読み取りと圧縮時のtombstoneの検証は、「disabled」、「warn」、または「exception」のいずれかになります。
デフォルト値: disabled
diagnostic_events_enabled
診断イベント # 有効にすると、診断イベントは運用上の問題のトラブルシューティングに役立ちます。発信されるイベントには、内部状態とイベント間の時間的関係に関する詳細が含まれており、クライアントはJMXを介してアクセスできます。
デフォルト値: false
native_transport_flush_in_batches_legacy
このオプションはデフォルトでコメントアウトされています。
ネイティブトランスポートTCPメッセージの連結を使用します。4.0へのアップグレードでスループットが低下し、特に古いカーネルを実行しているか、クライアント接続が非常に少ない場合は、このオプションの評価を行う価値があります。
デフォルト値: false
repaired_data_tracking_for_range_reads_enabled
読み取り中のデータの修復状態の追跡とレプリカ間の比較を有効にします。レプリカの修復済みセット間の不一致は、確認済みまたは未確認のいずれかに分類されます。このコンテキストでは、未確認とは、保留中の修復セッション、修復されていないパーティションのtombstone、またはその他の条件が存在するため、不一致を決定的なものと見なすことができないことを示します。確認済みの不一致は、破損またはデータ損失を示している可能性があるため、調査のきっかけとなるはずです。範囲読み取りとパーティション読み取りには別々のフラグがあるため、単一パーティション読み取りは、CL > 1でダイジェストの不一致が発生した場合にのみ追跡されます。現在、範囲クエリはダイジェストを使用しないため、範囲読み取りに対して有効にすると、すべての範囲読み取りに修復済みデータの追跡が含まれます。これはいくつかのオーバーヘッドを追加するため、オペレーターはパーティション読み取りに対して有効にしながら無効にすることを希望する可能性があります。
デフォルト値: false
report_unconfirmed_repaired_data_mismatches
falseの場合、確認済みの不一致のみが報告されます。trueの場合、未確認の不一致に関する別のメトリックも記録されます。これは、未確認の不一致は確認済みのものよりも対処が困難であるため、潜在的な信号:ノイズの問題を回避するためです。
デフォルト値: false
auth_read_consistency_level
このオプションはデフォルトでコメントアウトされています。
認証テーブルの変更に対する読み取りと書き込みの整合性レベルを設定します。
デフォルト値: LOCAL_QUORUM
auth_cache_warming_enabled
このオプションはデフォルトでコメントアウトされています。
認証解決の遅延は、再接続時に群衆効果問題につながる可能性があります。このオプションにより、ノードが起動を完了する前に認証キャッシュのウォーミングが有効になります。CASSANDRA-16958を参照してください。
デフォルト値: false
dynamic_data_masking_enabled
このオプションはデフォルトでコメントアウトされています。
有効な場合、動的データマスキングにより、CQLマスキング関数をテーブルの列にアタッチできます。UNMASK権限を持たないユーザーは、マスクがアタッチされた列の値の隠蔽されたバージョンを見ます。動的データマスキングが無効になっている場合、新しい列マスクを作成することはできませんが、既存のマスクを削除することは可能です。また、既存のマスクはクエリ時には無視されるため、すべてのユーザーがマスクされた列のクリアな値を見ます。動的データマスキングを無効にするために、デフォルトはfalseです。
デフォルト値: false
materialized_views_enabled
# 実験的機能 # #
このノードでのマテリアライズドビューの作成を有効にします。マテリアライズドビューは実験的とみなされており、本番環境での使用はお勧めしません。
デフォルト値: false
sasi_indexes_enabled
このノードでのSASIインデックスの作成を有効にします。SASIインデックスは実験的とみなされており、本番環境での使用はお勧めしません。
デフォルト値: false
transient_replication_enabled
このノードでの一時的にレプリケーションされたキースペースの作成を有効にします。一時レプリケーションは実験的であり、本番環境での使用はお勧めしません。
デフォルト値: false
drop_compact_storage_enabled
このノードで「ALTER … DROP COMPACT STORAGE」ステートメントの使用を有効にします。「ALTER … DROP COMPACT STORAGE」は実験的とみなされており、本番環境での使用はお勧めしません。
デフォルト値: false
use_statements_enabled
このオプションはデフォルトでコメントアウトされています。
USE <キースペース> が許可されるかどうか。アップグレード時の失敗を避けるために、デフォルトで有効になっています。
デフォルト値: true
client_error_reporting_exclusions
このオプションはデフォルトでコメントアウトされています。
クライアントがプロトコル例外または不明な問題(Cassandraのバグ)をトリガーした場合、これを示すクライアントメトリックが増加します。このロジックは、これらのメトリックの更新から特定のサブネットを除外します。
read_thresholds_enabled
このオプションはデフォルトでコメントアウトされています。 subnets: - 127.0.0.1 - 127.0.0.0/31
クライアントへのレポートのために、すべてのレプリカ間で読み取りしきい値(警告/失敗)を有効にします。参照:CASSANDRA-16850
デフォルト値: false # 4.2でtrueに設定される予定です
coordinator_read_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。 read_thresholds_enabled: trueの場合、これはコーディネーターでのクエリのマテリアライズされたサイズを追跡します。coordinator_read_size_warn_thresholdが定義されている場合、これはクライアントに警告を出し、これをトリガーしたクエリと結果セットのサイズに関する詳細情報を提供します。coordinator_read_size_fail_thresholdが定義されている場合、このしきい値を超えるとクエリが失敗し、ユーザーに読み取りエラーが返されます。
local_read_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。 read_thresholds_enabled: trueの場合、これはローカル読み取りのサイズ(ヒープサイズで定義)を追跡し、これらのしきい値に基づいて警告/失敗します。未定義の場合、これらのチェックは無効になります。
row_index_read_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。 read_thresholds_enabled: trueの場合、これはRowIndexEntryの予想メモリサイズを追跡し、これらのしきい値に基づいて警告/失敗します。未定義の場合、これらのチェックは無効になります。
keyspaces_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも多くのユーザーキースペースを作成する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
tables_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも多くのユーザーテーブルを作成する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
uncompressed_tables_enabled
このオプションはデフォルトでコメントアウトされています。
非圧縮テーブルの作成を有効または無効にするためのガードレール。
デフォルト値: true
columns_per_table_warn_threshold
このオプションはデフォルトでコメントアウトされています。
テーブルごとにしきい値よりも多くの列を作成/変更する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
secondary_indexes_per_table_warn_threshold
このオプションはデフォルトでコメントアウトされています。
テーブルごとにしきい値よりも多くのセカンダリインデックスを作成する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
secondary_indexes_enabled
このオプションはデフォルトでコメントアウトされています。
セカンダリインデックスの作成を有効または無効にするためのガードレール。
デフォルト値: true
materialized_views_per_table_warn_threshold
このオプションはデフォルトでコメントアウトされています。
テーブルごとにしきい値よりも多くのマテリアライズドビューを作成する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
table_properties_warned
このオプションはデフォルトでコメントアウトされています。
テーブルを作成する際にプロパティについて警告するか、無視するか、拒否するかについてのガードレール。デフォルトでは、すべてのプロパティが許可されています。
デフォルト値 []
user_timestamps_enabled
このオプションはデフォルトでコメントアウトされています。
ユーザー提供のタイムスタンプを許可/拒否するためのガードレール。デフォルトはtrueです。
デフォルト値: true
maximum_timestamp_warn_threshold
このオプションはデフォルトでコメントアウトされています。
ユーザー提供のタイムスタンプを特定の範囲内に制限するためのガードレール。デフォルトは無制限です(nullで示されます)。許容される値は、12h、24hなどの形式の期間です。
drop_truncate_table_enabled
このオプションはデフォルトでコメントアウトされています。
TRUNCATEおよびDROP TABLEステートメントを許可/拒否するためのガードレール。
デフォルト値: true
drop_keyspace_enabled
このオプションはデフォルトでコメントアウトされています。
DROP KEYSPACEステートメントを許可/拒否するためのガードレール。
デフォルト値: true
page_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも大きいページサイズを使用する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
read_before_write_list_operations_enabled
このオプションはデフォルトでコメントアウトされています。
書き込み前に読み取りを必要とするリスト操作(つまり、インデックスによるリスト要素の設定と、インデックスまたは値によるリスト要素の削除)を許可/拒否するためのガードレール。デフォルトはtrueです。
デフォルト値: true
partition_keys_in_select_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも多くのパーティションキーを選択するIN制限を使用してクエリを実行する場合に警告または失敗するためのガードレール。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
in_select_cartesian_product_warn_threshold
このオプションはデフォルトでコメントアウトされています。
INクエリがしきい値を超えるサイズのデカルト積を作成する場合に警告または失敗するためのガードレール。例:「a in (1,2,…10) and b in (1,2…10)」は100のデカルト積になります。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
read_consistency_levels_warned
このオプションはデフォルトでコメントアウトされています。
読み取り整合性レベルについて警告するか、拒否するかについてのガードレール。デフォルトでは、すべての整合性レベルが許可されています。
デフォルト値 []
write_consistency_levels_warned
このオプションはデフォルトでコメントアウトされています。
書き込み整合性レベルについて警告するか、拒否するかについてのガードレール。デフォルトでは、すべての整合性レベルが許可されています。
デフォルト値 []
partition_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも大きいパーティションを書き込む場合に警告または失敗するためのガードレール。100MiB、1GiBなどのように表現されます。このガードレールは、SSTableの書き込み(フラッシュとコンパクション)時のみチェックされ、その時点で失敗しきい値を超えると、操作を中断することなくエラーメッセージがログに記録されるだけです。これはSSTableごとに動作するため、複数のSSTableに分散されている場合、大きなパーティションは検出されません。警告しきい値は、非推奨の構成プロパティcompaction_large_partition_warning_thresholdに置き換わります。2つのしきい値は、無効にするためにnullにデフォルト設定されています。
partition_tombstones_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも多くのtombstoneを持つパーティションを書き込む場合に警告または失敗するためのガードレール。このガードレールは、SSTableの書き込み(フラッシュとコンパクション)時のみチェックされ、その時点で失敗しきい値を超えると、操作を中断することなくエラーメッセージがログに記録されるだけです。これはSSTableごとに動作するため、複数のSSTableに分散されている場合、大きなパーティションは検出されません。警告しきい値は、非推奨の構成プロパティcompaction_tombstone_warning_thresholdに置き換わります。2つのしきい値は、無効にするために-1にデフォルト設定されています。
デフォルト値 -1
column_value_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
しきい値よりも大きい列値を書き込む場合に警告または失敗するためのガードレール。このガードレールは、シリアライズされたパーティションキーとクラスタリングキーのコンポーネントの値には既に65535バイトという比較的サイズの小さい固定制限があるため、通常の列の値のみに適用されます。これは、おそらくここで定義されているしきい値よりも小さいです。非凍結セットとマップの個々の要素を削除するには、要素が存在したかどうかに関係なく、削除された要素の値を含むtombstoneを作成する必要があります。そのtombstone値もこのガードレールによって保護され、しきい値を超えるtombstoneの挿入を防ぎます。欠点は、このしきい値を有効にしたり上げたりすると、ガードレールが無効になっていたり、より低い値で書き込まれていたセット/マップ要素を削除できなくなる可能性があることです。列、行、またはパーティション全体を削除することは常に許可されます。これは、これらの操作のために作成されたtombstoneにはCQL列値が含まれていないためです。このガードレールはmax_value_sizeとは異なります。max_value_sizeは、SSTableの破損を検出するために任意の値を逆シリアル化するときにチェックされますが、このガードレールは書き込み時にCQLレイヤーでチェックされ、大きすぎる列を挿入する通常のユーザークエリを拒否します。2つのしきい値は、無効にするためにnullにデフォルト設定されています。最小単位:B
collection_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
コレクションデータのサイズが閾値を超えた場合に警告またはエラーを発生させるガードレールです。クエリ実行時には、このガードレールは書き込み中のコレクションフラグメントのみに適用されます。非凍結コレクションの場合、SSTable上にコレクションの考慮されていない部分が存在する可能性がありますが、これはリードビフォアライトを防ぐためです。このガードレールは、SSTable書き込み時にもチェックされ、大きな非凍結コレクションを検出します。ただし、その場合、失敗閾値を超えてもエラーメッセージがログに記録されるだけで、操作は中断されません。2つの閾値は、無効にするためにデフォルトでnullになります。最小単位:B
items_per_collection_warn_threshold
このオプションはデフォルトでコメントアウトされています。
コレクション内の要素数が閾値を超えた場合に警告またはエラーを発生させるガードレールです。クエリ実行時には、このガードレールは書き込み中のコレクションフラグメントのみに適用されます。非凍結コレクションの場合、SSTable上にコレクションの考慮されていない部分が存在する可能性がありますが、これはリードビフォアライトを防ぐためです。このガードレールは、SSTable書き込み時にもチェックされ、大きな非凍結コレクションを検出します。ただし、その場合、失敗閾値を超えてもエラーメッセージがログに記録されるだけで、操作は中断されません。2つの閾値は、無効にするためにデフォルトで-1になります。
デフォルト値 -1
allow_filtering_enabled
このオプションはデフォルトでコメントアウトされています。
ALLOW FILTERINGを使用したクエリを許可/禁止するガードレールです。デフォルトはtrueです。ALLOW FILTERINGは、テーブル内のすべてのデータにアクセスする可能性があり、パフォーマンスが予測不能になる可能性があります。
デフォルト値: true
simplestrategy_enabled
このオプションはデフォルトでコメントアウトされています。
キースペースの作成または変更時にSimpleStrategyの設定を許可/禁止するガードレールです。デフォルトはtrueです。
デフォルト値: true
fields_per_udt_warn_threshold
このオプションはデフォルトでコメントアウトされています。
閾値よりも多くのフィールドを持つユーザー定義型を作成する場合に警告またはエラーを発生させるガードレールです。無効にするためにデフォルトで-1になります。
デフォルト値 -1
vector_dimensions_warn_threshold
このオプションはデフォルトでコメントアウトされています。
閾値よりも多くの次元を持つベクトル列を作成する場合に警告またはエラーを発生させるガードレールです。無効にするためにデフォルトで-1になります。
デフォルト値 -1
alter_table_enabled
このオプションはデフォルトでコメントアウトされています。
ユーザーがALTER TABLEコマンドを使用してテーブルの列を変更することを許可するかどうかを示すガードレールです。
デフォルト値: true
data_disk_usage_percentage_warn_threshold
このオプションはデフォルトでコメントアウトされています。
ローカルデータディスクの使用率パーセンテージが閾値を超えた場合に警告またはエラーを発生させるガードレールです。有効な値は[1, 100]です。これはデータディレクトリを保存するディスクのみに使用されるため、コミットログ、ヒント、保存されたキャッシュの保存に使用される個別のディスクはカウントされません。ディスク使用率は、データディレクトリで使用されている容量と、同じ容量とディスクの残りの空き容量の合計の比率です。このガードレールの主な目的は、ディスクの使用率が定義されたパーセンテージを超えている場合にユーザー書き込みを拒否することです。そのため、圧縮やストリーミングなどのバックグラウンドプロセスによって行われた書き込みは、ディスクがいっぱいのために失敗しません。これらのバックグラウンドプロセスによる予想されるデータ増加に合わせて制限を定義する必要があります。たとえば、圧縮戦略によってデータサイズが2倍になる場合は、ディスク使用率を50%未満に維持する必要があります。2つの閾値は、無効にするためにデフォルトで-1になります。
デフォルト値 -1
data_disk_usage_max_disk_size
このオプションはデフォルトでコメントアウトされています。
disk_usage_percentage_warn_thresholdとdisk_usage_percentage_fail_thresholdの閾値を計算する際のデータディレクトリの最大ディスクサイズをユーザーが定義できるようにするガードレールです。そのため、これが0より大きい場合、物理的に利用可能なディスクサイズではなく、ディスク上の固定サイズのパーセンテージになります。これは、大きなディスクがあり、その一部のみをCassandraのデータディレクトリに使用する場合に役立ちます。有効な値は[1、すべてのデータディレクトリの利用可能な最大ディスクサイズ]です。無効にし、計算中にデータディレクトリの物理的に利用可能なディスクサイズを使用するには、デフォルトでnullになります。最小単位:B
minimum_replication_factor_warn_threshold
このオプションはデフォルトでコメントアウトされています。
最小レプリケーションファクターが閾値よりも小さい場合に警告またはエラーを発生させるガードレールです。これはシステムキースペースにも適用されます。本番環境での推奨値:2以上
デフォルト値 -1
maximum_replication_factor_warn_threshold
このオプションはデフォルトでコメントアウトされています。
最大レプリケーションファクターが閾値よりも大きい場合に警告またはエラーを発生させるガードレールです。これはシステムキースペースにも適用されます。
デフォルト値 -1
zero_ttl_on_twcs_enabled
このオプションはデフォルトでコメントアウトされています。
default_time_to_liveが0に設定され、テーブルがTimeWindowCompactionStrategy圧縮またはそのサブクラスを使用している場合に、CREATEまたはALTER TABLEステートメントを有効にするガードレールです。このような圧縮戦略でdefault_time_to_liveを0に設定するのは疑わしいです。データは、特定のサイズの圧縮ウィンドウ単位よりも古くなった後に自動的に期限切れになるわけではありません。テーブル設定では期限切れになりませんので、データの期限切れを期待する場合は、INSERTまたはUPDATEステートメントにTTLを設定してください。デフォルトはtrueです。falseに設定すると、そのようなステートメントは失敗し、zero_ttl_on_twcs_warnedフラグは無関係になります。
デフォルト値: true
zero_ttl_on_twcs_warned
このオプションはデフォルトでコメントアウトされています。 default_time_to_liveが0に設定され、テーブルがTimeWindowCompactionStrategy圧縮またはそのサブクラスを使用している場合に、CREATEまたはALTER TABLEステートメントを実行するときにユーザーに警告するガードレールです。デフォルトはtrueです。zero_ttl_on_twcs_enabledがfalseに設定されている場合、そのようなステートメントは失敗するため、このプロパティは無関係です。
デフォルト値: true
non_partition_restricted_index_query_enabled
このオプションはデフォルトでコメントアウトされています。
パーティションキーを制限しないセカンダリインデックスクエリを有効にするガードレール(デフォルトはtrue)
デフォルト値: true
sai_sstable_indexes_per_query_warn_threshold
このオプションはデフォルトでコメントアウトされています。警告を出す前にSELECTクエリを実行するときのレプリカ上の参照されたSAIインデックスの最大数(デフォルトは32)
デフォルト値 32
sai_sstable_indexes_per_query_fail_threshold
このオプションはデフォルトでコメントアウトされています。エラーを出す前にSELECTクエリを実行するときのレプリカ上の参照されたSAIインデックスの最大数(無効にするためにデフォルトは-1)
デフォルト値 -1
sai_string_term_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
SAIインデックスに書き込まれた文字列項のサイズに対する警告/失敗の閾値を指定するガードレール
デフォルト値: 1KiB
sai_frozen_term_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
SAIインデックスに書き込まれた凍結項のサイズに対する警告/失敗の閾値を指定するガードレール
デフォルト値: 1KiB
sai_vector_term_size_warn_threshold
このオプションはデフォルトでコメントアウトされています。
SAIインデックスに書き込まれたベクトル項のサイズに対する警告/失敗の閾値を指定するガードレール
デフォルト値: 16KiB
default_secondary_index
このオプションはデフォルトでコメントアウトされています。
CREATE INDEXがUSINGで指定しない場合のデフォルトのセカンダリインデックス実装。例:「legacy_local_table」 - (デフォルト)非表示テーブルとして実装されたレガシーセカンダリインデックス 例:「sai」 - 最適化されたSSTable/Memtableに接続されたインデックスとして実装された「ストレージ接続」インデックス
デフォルト値: legacy_local_table
default_secondary_index_enabled
このオプションはデフォルトでコメントアウトされています。
デフォルトのセカンダリインデックス実装が許可されるかどうか。これが「false」の場合、CREATE INDEXはUSINGでインデックス実装を指定する必要があります。
デフォルト値: true
startup_checks
このオプションはデフォルトでコメントアウトされています。
スタートアップチェックは、Cassandraの起動プロセスの一部として実行されます。すべてが構成可能ではありません(無効にすることができます)が、以下に列挙されているものは構成可能です。スタートアップチェックのコメントを外し、必要に応じて適切に構成してください。
storage_compatibility_mode
起動時にディスク上の添付場所の正しい所有権を確認します。詳細については、CASSANDRA-16879を参照してください。 check_filesystem_ownership: enabled: false ownership_token: "sometoken" # (「CassandraOwnershipToken」システムプロパティでオーバーライド) ownership_filename: ".cassandra_fs_ownership" # (「cassandra.fs_ownership_filename」でオーバーライド) スニッチのデータセンターが以前のデータセンターと異なる場合、ノードの起動を阻止します。 check_dc: enabled: true # (cassandra.ignore_dcシステムプロパティでオーバーライド) スニッチのラックが以前のラックと異なる場合、ノードの起動を阻止します。 check_rack: enabled: true # (cassandra.ignore_rackシステムプロパティでオーバーライド) ノードがgc_grace_secondsよりも長くダウンしている場合に起動を失敗させるようにこのプロパティを有効にし、削除を含むテーブルでのデータの復活を潜在的に防ぎます。デフォルトでは、excluded_keyspacesとexcluded_tablesで指定されたものを除く、すべてのキースペースとテーブルに対して実行されます。 check_data_resurrection: enabled: false Cassandraが定期的に最後に実行されたことがわかっている時間を書き込むファイル heartbeat_file: /var/lib/cassandra/data/cassandra-heartbeat excluded_keyspaces: # チェックから除外するキースペースのカンマ区切りのリスト excluded_tables: # チェックから除外するキースペース.テーブルのペアのカンマ区切りのリスト
このプロパティは、ストレージ形式がどのCassandraメジャーバージョンと互換性があるかを示します。
選択されたストレージ互換性モードによって、書き込まれたSSTable、コミットログ、ヒントなど、コンポーネントのバージョンが決まります。たとえば、Cassandra 4.xと互換性を維持する場合は、このプロパティの値を4にする必要があります。これにより、BIG形式の最新のNバージョンのSSTableが使用されます。
これにより、新しい形式に依存する特定の機能が利用可能になるかどうかが決まります。たとえば、拡張TTL(最大2106まで)は、Cassandra 5.0で導入されたSSTable、コミットログ、ヒント、メッセージングバージョンに依存するため、このプロパティがCASSANDRA_4に設定されている場合は、その機能は利用できません。詳細については、アップグレードガイドを参照してください。
可能な値は次のとおりです。 - CASSANDRA_4:機能、形式、コンポーネントのバージョンにおいて、4.xラインとの互換性を維持します。 - UPGRADING:クラスタはこの中間段階で各ノードのバージョンを監視します。これにはコストがかかりますが、すべての新しい機能、形式、バージョンなどを安全に有効にすることができます。 - NONE:すべての新しい機能と形式を有効にして開始します。
一般的なアップグレードは次のようになります。 - ローリングアップグレードを実行し、すべてのノードをCASSANDRA_X互換性モードで起動します。 - 新しいバイナリが安定した状態になったら、UPGRADINGモードでローリング再起動を実行します。クラスタは、すべてのノードがUPGRADINGモードで起動されるまで、新しい機能を無効にしたままにします。それが発生すると、ストレージ互換性モードによって制御される新しい機能が有効になります。 - すべてのノードをNONEモードで起動してローリング再起動を実行します。これにより、ノードバージョンのチェックのコストが削減され、安定性が確保されます。以前のバージョンでCassandraが誤って起動された場合、互換性モードが無効になっているノードは、UPGRADINGモードで実行されているときのように動作を切り替えることはなくなります。
デフォルト値: CASSANDRA_4