[Ultramonkey-l7-develop 157] Re: Replication機能に関する仕様整理

アーカイブの一覧に戻る

Hajime Okada h.oka****@sdy*****
2008年 3月 7日 (金) 14:08:01 JST


木谷様、お世話になります。
岡田です。

現在UTコードを書いているところですので、もうじき出来上がります。
少々お待ちください

Yumi Kitani さんは書きました:
> 岡田 様
> 
> 木谷です。
> お世話になっております。
> 
> Replication機能の追加に伴い、Service側で変更が必要な処理について
> 御質問を頂いていましたが、ここで改めてReplication機能の仕様を
> 整理してお答えいたします。

ありがとうございます。
文中にコメントします。

> ・ACT/SBY切り替え時、SBY側でプールされるAct側から受信したデータの
>  取得方法について。
> → SBY側で、l7vs_replication_pay_memory関数を利用してください。
>   引数として(char*,unsigned int*)を指定すると、
>   プールされたAct側から受信したデータが保存されているmemoryと
>   を返し、指定のポインタ(unsigned int*)に、Block数(領域)を代入します。

了解しました。

> ・レプリケーション領域のブロックの構造について
> →1ブロック500バイトで管理し、送信単位はこの500バイトです。
>  ただし、1ブロック内には、ヘッダが含まれるので
>  コンポーネントとして使用できるサイズは1ブロック480バイト
>  になります。
> 
> ・レプリケーション領域の利用方法について
> →l7vs_replication_pay_memory関数で取得した領域は
>  上記の、ヘッダを抜いた480バイトの連続したブロックで
>  割り当てを行います。
>  コンポーネントでは連続した480バイト×ブロック数のサイズの
>  メモリとして自由に使用してください。

使用可能領域のサイズは、1ブロック480バイト×ブロック数、了解しました。

> ・コンポーネントに割り当てられた領域のサイズの取得方法について
> →l7vs_replication_pay_memory関数の引数(unsigned int*)に格納します。

了解しました。

> ・SBY側からl7vs_replication_pay_memory関数をよんだ際におこる、
>  コンポーネントに割り当てられた領域の上書きの懸念について
> →質問の意図を教えて頂けますでしょうか。

まず先にお知らせしておきますが、、、こちらで書いたコード中で、質問の意図した懸念点は解決しております。

この質問の意図というか、懸念点は次の通りです。
・Sby→Actになった場合、レプリケーションデータをVirtualServiceに反映させる必要があります。
・データが反映されるのはVSが作成されたタイミングです。
・しかし、VSが作成されるタイミングで、レプリケーションデータの作成も行うので、その際に割り当てられた領域にデータを書き込むため、Act側から来たデータは無くなってしまう・・・。
という状態が発生します。

解決策は、
Sby→Actになった時に、現状のレプリケーションデータをservice内予備エリアにコピーして、そこからVSへの反映を行うようにしています。
あとで送るソースのコメントを読んでもらえばわかると思います。

> ・パラメータファイル再読み込みで、ブロック数の指定が変わった場合について
> → パラメータファイルに記述されたブロック数はパラメータ再読み込みの
>   対象外です。
>   l7vsの起動時に指定されたブロックはl7vsが終了する
>   まで変わりません。

ブロック数はプロセスの起動から終了まで不変ですね。了解しました。

よろしくお願いします。
-- 
+===========================+
 Hajime Okada / 岡田 創
  mail : h.oka****@sdy*****
           株式会社SDY
+===========================+




Ultramonkey-l7-develop メーリングリストの案内
アーカイブの一覧に戻る