Coherenceキャッシュを使用して値オブジェクトをキャッシュします。これらのオブジェクトは、(セッション・データや一時データなどの)内部ソースのデータ、または(データベースやメインフレームなどの)外部ソースのデータのいずれでもかまいません。
キャッシュに配置されたオブジェクトはシリアライズ可能である必要があります。シリアライズは、多くの場合、クラスタ化されたデータ管理における最も費用を要する部分になるため、Coherenceではデータのシリアライズ/デシリアライズ用に次のオプションを用意しています。
com.tangosol.io.pof.PofSerializer
: Portable Object Format(POF)は言語に依存しないバイナリ形式です。POFは領域と時間の両面で効率を向上させるように設計された、Coherenceの推奨シリアライズ・オプションです。第19章「Portable Object Formatの使用」を参照してください。
java.io.Serializable
: 最も単純で処理の遅いオプション。
java.io.Externalizable
: 開発者が手動でシリアライズを実装する必要がありますが、パフォーマンスの大幅な向上が見込めます。java.io.Serializable
と比べて、シリアライズされたデータのサイズを2倍以上削減できます(分散キャッシュでは、一般的にデータがシリアライズされた形式でキャッシュされるため特に有用です)。最も重要なのは、CPU使用率が劇的に削減されるということです。
com.tangosol.io.ExternalizableLite
: java.io.Externalizable
と非常によく似ていますが、より効率的なI/Oストリームの実装を使用することで、パフォーマンスの向上とメモリー使用量の削減を図れます。
com.tangosol.run.xml.XmlBean
: ExternalizableLite
のデフォルトの実装(詳細は、API JavadocでXmlBean
を参照してください)。
注意: オブジェクトをシリアライズする場合は、Javaのシリアライズ機能によって、すべての参照可能オブジェクトが自動的に(Map やList などのコレクションを含むオブジェクト参照を使用して)クロールされることを忘れないでください。したがって、キャッシュされたオブジェクトが親オブジェクトを直接参照する必要はありません(整数のような特定の値を保持することは構いません)。
独自のシリアライズ・ルーチンを実装するオブジェクトは影響を受けません。 |