From kitani.yumi @ nttcom.co.jp Fri Mar 7 13:28:23 2008 From: kitani.yumi @ nttcom.co.jp (Yumi Kitani) Date: Fri, 07 Mar 2008 13:28:23 +0900 Subject: [Ultramonkey-l7-develop 156] =?iso-2022-jp?b?UmVwbGljYXRpb24bJEI1IUc9JEs0WCQ5JGs7RU1NQDAbKEI=?= =?iso-2022-jp?b?GyRCTX0bKEI=?= Message-ID: <47D0C467.8040106@nttcom.co.jp> 岡田 様 木谷です。 お世話になっております。 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バイト×ブロック数のサイズの  メモリとして自由に使用してください。 ・コンポーネントに割り当てられた領域のサイズの取得方法について →l7vs_replication_pay_memory関数の引数(unsigned int*)に格納します。 ・SBY側からl7vs_replication_pay_memory関数をよんだ際におこる、  コンポーネントに割り当てられた領域の上書きの懸念について →質問の意図を教えて頂けますでしょうか。 ・パラメータファイル再読み込みで、ブロック数の指定が変わった場合について → パラメータファイルに記述されたブロック数はパラメータ再読み込みの   対象外です。   l7vsの起動時に指定されたブロックはl7vsが終了する   まで変わりません。 御確認の程、宜しくお願い致します。 From h.okada @ sdy.co.jp Fri Mar 7 14:08:01 2008 From: h.okada @ sdy.co.jp (Hajime Okada) Date: Fri, 07 Mar 2008 14:08:01 +0900 Subject: [Ultramonkey-l7-develop 157] Re: =?iso-2022-jp?b?UmVwbGljYXRpb24bJEI1IUc9JEs0WCQ5JGs7RU1NGyhC?= =?iso-2022-jp?b?GyRCQDBNfRsoQg==?= In-Reply-To: <47D0C467.8040106@nttcom.co.jp> References: <47D0C467.8040106@nttcom.co.jp> Message-ID: <47D0CDB1.8030306@sdy.co.jp> 木谷様、お世話になります。 岡田です。 現在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.okada @ sdy.co.jp 株式会社SDY +===========================+