シリアライゼーションの概要

データは、データ・グリッドで Java オブジェクトとして常に表されていますが、必ずしも保管されているとは限りません。WebSphere® eXtreme Scale は、クライアント・プロセスとサーバー・プロセスの間でのデータ移動のために、複数の Java プロセスを使用して、Java オブジェクト・インスタンスをバイトに変換し、必要に応じて再度オブジェクトに戻すことによって、データをシリアライズします。

データはシリアライズされます。すなわち、以下のシチュエーションで、ネットワークを介した伝送のためにデータはデータ・ストリームに変換されます。

代わりに、WebSphere eXtreme Scale を介したシリアライゼーション・プロセスはやめて、生データをバイト配列として保管することにしてもかまいません。バイト配列を使用すれば、メモリーへの保管にかかるコストはずっと少なくてすみます。これは、Java Virtual Machine (JVM) がガーベッジ・コレクション中に検索するオブジェクトが少なく、必要なときだけデシリアライズできるためです。照会または索引を使用してオブジェクトにアクセスする必要が ない場合にのみ、バイト配列を使用します。データはバイトとして保管されるため、eXtreme Scale には照会のための属性を記述するメタデータはありません。

eXtreme Scale でデータをシリアライズするために、Java シリアライゼーション、ObjectTransformer プラグイン、または DataSerializer プラグインを使用できます。これらのオプションのいずれかを使用してシリアライゼーションを最適化するには、COPY_TO_BYTES モードを使用します。すると、トランザクションのコミット時にデータがシリアライズされ、シリアライゼーションが 1 回のみ行われるようになるため、パフォーマンスを最大 70 % 高めることができます。シリアライズされたデータは、クライアントからサーバーに変更なしで送信されるか、サーバーから複製されたサーバーに送信されます。COPY_TO_BYTES モードを使用すると、大きなオブジェクト・グラフが消費するメモリー占有スペースを削減できます。

次の図を参考にして、開発ニーズに最適なシリアライゼーション・メソッドの種類を決定してください。最初の図は、グリッド断片の中で直接データ・オブジェクトと対話するロジックを実行している場合に使用可能なシリアライゼーション・メソッドを説明しています。最後の図は、グリッド断片と直接に対話していない場合に使用可能なオプションを表示しています。

グリッド断片にあるデータ・オブジェクトと直接対話するロジックを実行するためのシリアライゼーション

グリッド断片にあるデータ・オブジェクトと直接対話しないロジックを実行するためのシリアライゼーション

eXtreme Scale 製品でサポートされているシリアライゼーションの形式について詳しくは、以下のトピックを参照してください。