cassandra1.2系defaultのcassandra.yamlを1.1系とちょっと比較した
タイトルそのまま。今1.1系使っていて1.2.5へのアップデートを検討していて、configが結構変わっているらしいので、それらを調べてみた。
基本は今使っているとdiff取って名前変わっている奴や追加されている奴だけ記載。「>」ってついている奴は1.1系の時の奴。
http://www.datastax.com/docs/1.2/configuration/node_configuration
上記内容をGoogle翻訳して適当に見ただけなので、あんまり信用しない方が良いかも。あと、yamlに明示的に書いていないけど追加されている項目で1.2系からdefault 有効になっている奴もあるような気がするけど、そこはカバーしていないので調べて下さい><
hinted_handoff_throttle_in_kb: 1024
hinted handoffの転送速度
max_hints_delivery_threads: 2
hinted handoffに使うスレッド。iDCまたぎは増やせって
authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
認証処理の種類 allで許可かな
permissions_validity_in_ms: 2000
認証処理のキャッシュ期間
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
> authority: org.apache.cassandra.auth.AllowAllAuthority
> partitioner: org.apache.cassandra.dht.RandomPartitioner
RandomPartitionerと違う奴。新しいクラスタだったら使えるけど既存クラスタからの変更はダメだって。1.1->1.2だったらちゃんとRandomPartitioner使いなさいと。
hash関数変わっているからハッシュのレンジも変わっているっぽい。
http://www.datastax.com/docs/1.2/cluster_architecture/partitioners
authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
プロパティ名が微妙に変わっているのとデフォルト
org.apache.cassandra.dht.Murmur3Partitioner
に変更されているので注意
disk_failure_policy: stop
ディスク障害の時にどうするか。stopはcassandra停止 best_effortはとにかく頑張るらしい。でも危ないね。ignoreはアップグレードに使うらしい。可能な限りエラー無視してガシガシ行くらしいけど良いの?それ?普段はstopかbest effort使えって。
key_cache_size_in_mb:
デフォルトはヒープの5%か100MBの小さい方。無効は「0」にする
key_cache_save_period: 14400
key cacheの生存期間。秒単位。saved_caches_directoryに保存される。保存されていればcold startの速度早いしIOに影響与えない。
row_cache_size_in_mb: 0
row cache 基本無効でおk
row_cache_save_period: 0
同じく無効でおk
row_cache_provider: SerializingCacheProvider
row cacheの種類。一度シリアライズするから空間効率が良いらしいけど使わないので良い。
commitlog_segment_size_in_mb: 32
個々のcommit logのファイルセグメントサイズ。細かい粒度にしたい時は8~16とかにすればって書いている。
trickle_fsync: false
SSDの時にオヌヌメらしい。シーケンシャルwriteの時にダーティーバッファをフラッシュする為強制fsyncする。読み取り待ちの時にダーティーバッファを避けるために意図しない時にfsyncされる事を防ぐためらしい。HDDでは逆に推奨しないと。
trickle_fsync_interval_in_kb: 10240
上記の設定の間隔 10MBバッファが溜まったらfsyncって事か
listen_address: localhost
start_native_transport: false
native transport使うかどうかって。でも今のところbetaらしい。defaultはthriftなのでOFFでおk。CQL使う時は必要なのかも。
native_transport_port: 9042
start_rpc: true
thrift使うかどうか。使う。
rpc_address: localhost
auto_snapshot: true
snapshot取る時にトランザクションのチェックとかdropしている処理とかその辺調べてからやってくれるらしい。強く推奨するとの事。なんか勝手にsnapshot取ってくれるみたいな名前はどうなの。
read_request_timeout_in_ms: 10000
read処理要求して完了するまで待機する時間
range_request_timeout_in_ms: 10000
インデックススキャン処理要求して(ry
write_request_timeout_in_ms: 10000
書き込み処理要求して(ry
truncate_request_timeout_in_ms: 60000
truncate処理(ry
request_timeout_in_ms: 10000
上記以外の処理の(ry
cross_node_timeout: false
node間のtimeout情報の交換を有効にするか。無効にすると要求が瞬時にレプリカに行ったと判定されるとの事。NWレイテンシとかを考慮しないという意味かな。有効にすると受け取ったよーとかの判定をしてからタイムアウト判定するので長くなる感じすな。
endpoint_snitch: SimpleSnitch
iDC、ラック情報無しで考慮しない時に使うやつね。
> rpc_timeout_in_ms: 10000
> endpoint_snitch: org.apache.cassandra.locator.SimpleSnitch
endpoint_snitchが若干変わっているので注意
phi_convict_threshold
> phi_convict_threshold: 12
defaultは8で項目はあるけど、configに記載が無くなったか。node間の故障検知感度でノード数が多い時はdefaultよりアゲアゲで。
server_encryption_options:
> encryption_options:
ノード間の暗号化設定。
項目名若干変わっている
client_encryption_options:
クライアントからの暗号接続有効化設定。とりあえずいらない。