BOINCの版 |
|
BOINCのソフトウエア(コア・クライアントとすべてのサーバコンポーネント)は、 時間がたつにつれて進化していきます。 互いに相手を意識して動く相互関係が沢山ありますから、 版(version)の不整合によって問題をおこす可能性があります。 たとえば、:
それぞれの版のBOINCソフトウエアは、メイジャー版番号と マイナー版番号をもっています。 クライアントの版番号は、 スケジューラへのRPCおよび、アップロードRPCの要求の中に埋めこまれます。 もし、サーバが異なるメイジャー版番号をクライアントから受け取ると、 エラーを返します。
BOINCサーバソフトウエアへの変更のいくつかは、そのBOINCデータベースにも 変更をもたらすことがあります(新しいテーブルやフィールドを追加するなど)。 このような[版の]公開には、既存のデータベースを その場で修正するSQLスクリプトを含むことになるでしょう。
BOINCソフトウエアでのメイジャー版[番号]を変化させることは、 全てのプロジェクトでそれらのサーバソフトウエア(とデータベース)を 更新することを必要とするでしょう。 さらに、全ての参加者は、 すべてのホスト上のコア・クライアントを更新する必要することに なります。 この変更を全部いちどきに起こす必要はありません。 しかし、新旧が切り替わる重なりの期間には、あるクライアントは、 いくつかのサーバにアクセスできない、ということが起こるでしょう。
あるプロジェクトがサーバソフトウエアで、メイジャー版の更新を 行うとしたら、その[プロジェクトの]アプリケーションに新しい版を 作成する必要があるかもしれません。 新しいサーバソフトウエアと非互換となってしまう アプリケーションの版については全て、 (min_version の値を増やすことにより) 無効化しなければなりません。
参加者がコア・クライアントを更新するときは、 (新しいアプリケーションの版がきっと必要でしょうから) 処理中(In progress 状態)のすべてのリザルトは破棄されます。 コア・クライアントは、旧クライアントの状態ファイル(訳注4) から版番号を読み出して、それらのリザルトを破棄します。
やるべき仕事:版の変更が、ワークのシーケンス(訳注5)と どのように相互作用するかを解明する必要があります。 シーケンスを必要もないのに再配置(訳注6)することはしたくありません。