Jubatus は ZooKeeper 上のリソースを操作するが、そのリソースが期待する状態ではなかった場合の動作について、明確な方針がない。
以下を定義する。
- ZooKeeper 上のリソースの CRU(D) 操作に関する方針
0. ログ出力の目的 | |
- システム情報の通知 | |
- 運用におけるエラー、異常の通知 | |
- システムの不正な動きの報告(セキュリティ) | |
- デバッグ | |
1. 利用するライブラリ | |
http://code.google.com/p/google-glog/ |
【Jubatus ZKとの接続でSESSION_EXPIREDしたときどうするか問題】 | |
- ZKを利用しているOSSの実装 | |
- EXPIREしたらexit(自殺)する | |
- EXPIREしてもZKと繋がるまで再接続し続ける | |
- 無限ループ・回数制限を設ける | |
- 接続が切れている間は、ZK関連のサービスを提供できない(キャッシュ保持してるかもしれない。もしくは、キャッシュはクリアする実装) | |
- Jubatusにおける選択肢 | |
- EXPIREしたらプロセスを終了する | |
- EXPIREしてもZKへ接続リトライする(リトライし続ける、回数制限等つけてリトライする) |
【configを動的に再変更できたほうがいいか否か】 | |
- できたほうがいい | |
- メリット | |
- 設定変更の自由度があがる | |
- 設定調整、実験、評価がやりやすくなる | |
- プロセス再起動なしで状態を初期化できる | |
- デメリット | |
- 同一インスタンスのサーバで設定の一貫性を保証、もしくは一貫性がないことに対処できる仕組みが必要になる | |
- それに伴い、正常なサービスを提供できなくなる可能性がある 例:サーバが停止する、サーバが誤った結果を返す | |
- 以下の【課題】の部分に相当 |