検討事項
- 表現力がどれくらいあるか(型、デフォルト、オプショナル)
- 設定を書きやすいか(コメントなど)
- 仕様を記述できるか(スキーマを記述する方法があるか)
- スキーマの検証ができるか
【configを動的に再変更できたほうがいいか否か】 | |
- できたほうがいい | |
- メリット | |
- 設定変更の自由度があがる | |
- 設定調整、実験、評価がやりやすくなる | |
- プロセス再起動なしで状態を初期化できる | |
- デメリット | |
- 同一インスタンスのサーバで設定の一貫性を保証、もしくは一貫性がないことに対処できる仕組みが必要になる | |
- それに伴い、正常なサービスを提供できなくなる可能性がある 例:サーバが停止する、サーバが誤った結果を返す | |
- 以下の【課題】の部分に相当 |
【やりたいこと】 | |
- 分散環境で、同じnameを持つサーバは同じconfigを持つ。 | |
- サーバは途中から参加することがある。 | |
- クライアントからconfigを変えることが出来る。 | |
【configの与え方をどうするか?】 | |
- RPCで与える | |
- 設定を変える場合は、set_config | |
- 途中から参加する場合もset_config | |
- すべての設定が同じ事は、ユーザの責任にする。 |
import classifier_types | |
import msgpackrpc | |
class classifier: | |
def __init__ (self, host, port): | |
address = msgpackrpc.Address(host, port) | |
self.client = msgpackrpc.Client(address) | |
def set_config (self, arg0, arg1): |