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を動的に再変更できたほうがいいか否か】 | |
| - できたほうがいい | |
| - メリット | |
| - 設定変更の自由度があがる | |
| - 設定調整、実験、評価がやりやすくなる | |
| - プロセス再起動なしで状態を初期化できる | |
| - デメリット | |
| - 同一インスタンスのサーバで設定の一貫性を保証、もしくは一貫性がないことに対処できる仕組みが必要になる | |
| - それに伴い、正常なサービスを提供できなくなる可能性がある 例:サーバが停止する、サーバが誤った結果を返す | |
| - 以下の【課題】の部分に相当 |